English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دروس أساسية في C

تحكم في العملية في C

الوظائف في لغة C

المسافات في لغة C

المراجع في لغة C

ال

بنية C

ملفات C

C أخرى

دليل C

عمليات التبديل بتية في C

في هذا الدرس، ستعرف عن طريق الأمثلة جميع عمليات التبديل بتية الستة في برمجة C.

في وحدة الحساب الآلي (تقع داخل المعالج)، يتم تنفيذ العمليات الرياضية مثل الجمع، الطرح، الضرب والقسمة على مستوى البت.

العملية
معاني العملية
&&التبديل بتية
|التبديل بتية
^التبديل بتية
~التبديل بتية
<<التحويل إلى اليسار
>>التحويل إلى اليمين

عمليات والبتية &

إذا كانت الأجزاء المتبادلة من العناصر المضروبة معًا، فإن نتيجة عمليات والبتية تكون 1. إذا كان أي جزء من العنصر المضروب معًا 0، فإن النتيجة تكون 0.

لنفترض أننا نعالج عمليات والبتية للأعداد الصحيحة 12 و 25.

12 = 00001100 (النظام الثنائي)
25 = 00011001 (النظام الثنائي)
عمليات بتية بين 12 و 25
  00001100
& 00011001
  ________
  00001000 = 8 (بالأرقام العشرية)

مثال 1: والبتية

#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 (بالأرقام العشرية)

مثال 2: أو بتية

#include <stdio.h>
int main()
{
    int a = 12, b = 25;
    printf("Output = %d", a|b);
    return 0;
}

نتيجة الخروج

Output = 29

عمليات إشارة النقل البسيط (XOR)

إذا كانت الأجزاء المتبادلة من العناصر المضروبة معًا، فإن نتيجة عمليات إشارة النقل البسيط تكون 1. يتم تمثيل هذا باستخدام ^.

12 = 00001100 (النظام الثنائي)
25 = 00011001 (النظام الثنائي)
عمليات التشابك للعددين 12 و 25
  00001100
^ 00011001
  ________
  00010101 = 21 (النظام العشري)

مثال3: عمليات التشابك

#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 (النظام العشري)

مثال4: عمليات التكامل

#include <stdio.h>
int main()
{
    printf("Output = %d\n", ~35);
    printf("Output = %d\n", ~-12);
    return 0;
}

نتيجة الخروج

Output = -36
Output = 11

عمليات التحريك في برمجة C

في برمجة 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 (النظام العشري)

مثال#5: عمليات النقل

#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