English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستعرف عن طريق الأمثلة جميع عمليات التبديل بتية الستة في برمجة C.
في وحدة الحساب الآلي (تقع داخل المعالج)، يتم تنفيذ العمليات الرياضية مثل الجمع، الطرح، الضرب والقسمة على مستوى البت.
العملية | معاني العملية |
---|---|
&& | التبديل بتية |
| | التبديل بتية |
^ | التبديل بتية |
~ | التبديل بتية |
<< | التحويل إلى اليسار |
>> | التحويل إلى اليمين |
إذا كانت الأجزاء المتبادلة من العناصر المضروبة معًا، فإن نتيجة عمليات والبتية تكون 1. إذا كان أي جزء من العنصر المضروب معًا 0، فإن النتيجة تكون 0.
لنفترض أننا نعالج عمليات والبتية للأعداد الصحيحة 12 و 25.
12 = 00001100 (النظام الثنائي) 25 = 00011001 (النظام الثنائي) عمليات بتية بين 12 و 25 00001100 & 00011001 ________ 00001000 = 8 (بالأرقام العشرية)
#include <stdio.h> int main() { int a = 12, b = 25; printf("Output = %d", a&b); return 0; }
نتيجة الخروج
Output = 8
إذا كان على الأقل جزءًا من الأجزاء المتبادلة من العناصر المضروبة معًا، فإن نتيجة عمليات أو بتية تكون 1. في برمجة C، يتم تمثيل عمليات أو بتية باستخدام |.
12 = 00001100 (النظام الثنائي) 25 = 00011001 (النظام الثنائي) عمليات أو بتية بين 12 و 25 00001100 | 00011001 ________ 00011101 = 29 (بالأرقام العشرية)
#include <stdio.h> int main() { int a = 12, b = 25; printf("Output = %d", a|b); return 0; }
نتيجة الخروج
Output = 29
إذا كانت الأجزاء المتبادلة من العناصر المضروبة معًا، فإن نتيجة عمليات إشارة النقل البسيط تكون 1. يتم تمثيل هذا باستخدام ^.
12 = 00001100 (النظام الثنائي) 25 = 00011001 (النظام الثنائي) عمليات التشابك للعددين 12 و 25 00001100 ^ 00011001 ________ 00010101 = 21 (النظام العشري)
#include <stdio.h> int main() { int a = 12, b = 25; printf("Output = %d", a^b); return 0; }
نتيجة الخروج
Output = 21
عمليات التكامل هي عمليات ثنائية (تؤثر على عملية واحدة فقط). إنها تغير 1 إلى 0، وتغير 0 إلى 1. وتُرمز لها بـ ~.
35 = 00100011 (النظام الثنائي) عمليات التكامل لعدد 35 〜00100011 ________ 11011100 = 220 (النظام العشري)
#include <stdio.h> int main() { printf("Output = %d\n", ~35); printf("Output = %d\n", ~-12); return 0; }
نتيجة الخروج
Output = -36 Output = 11
في برمجة C يوجد عمليتان لعمليات التحريك:
عمليات التحريك اليمنى
عمليات التحريك اليمنى.
عمليات التحريك اليمنى تتحرك جميع الأرقام إلى اليمين بمقدار معين من الأرقام. وتُرمز لها بـ >>.
212 = 11010100 (النظام الثنائي) 212 >> 2 = 00110101 (النظام الثنائي) [التحريك لأسفل) 212 >> 7 = 00000001 (النظام الثنائي) 212 >> 8 = 00000000 212 >> 0 = 11010100 (بدون تحريك)
عمليات التحريك تتحرك جميع الأرقام إلى اليسار أو اليمنى بمقدار معين من الأرقام. وتُرمز لها بـ <<.
212 = 11010100 (النظام الثنائي) 212 << 1 = 110101000 (النظام الثنائي) [التحريك لأسفل) 212 << 0 = 11010100 (التحريك 0) 212 << 4 = 110101000000 (النظام الثنائي) = 3392 (النظام العشري)
#include <stdio.h> int main() { int num=212, i; for (i=0; i<=2; ++i) printf("التحريك اليمنى %d: %d\n", i, num>>i); printf("\n"); for (i=0; i<=2; ++i) printf("التحريك اليساري %d: %d\n", i, num<<i); return 0; }
نتيجة الخروج:
التحريك اليمنى 0: 212 التحريك اليمنى 1: 106 التحريك اليمنى 2: 53 التحريك اليساري 0: 212 التحويل إلى اليسار 1: 424 التحويل إلى اليسار 2: 848