freeCodeCamp/guide/arabic/java/basic-operations/bitwise-operators/index.md

3.6 KiB

title localeTitle
bitwise operator example مثال على معامل البت

مشغلات bitwise

جدول الحقيقة

truth table

تشبه مشغلات bitwise المشغلين المنطقيين ، إلا أنها تعمل على نطاق أصغر - تمثيل البيانات الثنائية. يمكن تحويل أي بيانات إلى مكافئها الثنائي. على الرغم من أن المشغلين الثنائيين يعملون على المستوى الثنائي إلا أنه يتم تشغيلهم بين القيم العشرية العادية فقط.

أنواع المشغلين bitwise

Bitwise OR

Bitwise OR هو مشغل ثنائي (يعمل على اثنين من المعاملات). تدل عليه |. ذا | عامل التشغيل يقارن البتات المقابلة من اثنين من المعاملات. إذا كان أي من البتات هو 1 ، فإنه يعطي 1. إن لم يكن ، فإنه يعطي 0.

Bitwise AND

Bitwise AND هو مشغل ثنائي (يعمل على اثنين من المعاملات). تدل عليه &. يقوم المشغل بمقارنة البتات المقابلة من اثنين من المعاملات. إذا كان كلا البتات 1 ، فإنه يعطي 1. إذا كان أي من البتات ليس 1 ، فإنه يعطي 0.

Bitwise Complement

مكمّل Bitwise هو مشغل وحيد (يعمل على مُعامل واحد فقط). هو تدل عليه ~. يقوم المشغل ~ بتغيير نمط البتة. يجعل كل 0 إلى 1 ، وكل 1 إلى 0.

Bitwise XOR

Bitwise XOR هو مشغل ثنائي (يعمل على اثنين من المعاملات). تدل عليه ^. عامل التشغيل ^ يقارن البتات المقابلة من اثنين من المعاملات. إذا كانت البتات المقابلة مختلفة ، فإنها تعطي 1. إذا كانت البتات المقابلة متماثلة ، فإنها تعطي 0.

التحول الأيسر

يقوم عامل تشغيل shift الأيسر << بنقل نمط بت إلى اليسار بواسطة عدد معين من البتات المحددة ، ويتم نقل البتات الصفرية إلى مواقع الترتيب المنخفض.

النقلة الصحيحة

يقوم مشغل shift الصحيح >> بنقل شكل بت إلى اليمين بواسطة عدد معين من وحدات البت المحددة.إذا كان الرقم رقمًا مكملاً مكملاً لثانيتين ، يتم نقل بت الإشارة إلى المواضع ذات الترتيب العالي.

غير لليمين التحول

عامل shift shift غير الموقعة >>> ينقل صفر في الموضع الموجود في أقصى اليسار.

مثال على معامل البتات:

` int a = 60; /* 60 = 0011 1100 represents 60 in binary*/ int b = 13; /* 13 = 0000 1101 */ int c = 0;

c = a & b;        /* 12 = 0000 1100 */ 
c = a | b;        /* 61 = 0011 1101 */ 
c = a ^ b;        /* 49 = 0011 0001 */ 
c = ~a;           /*-61 = 1100 0011  :Invert all bits */ 

// shift operators : zeros are shifted in to replace the discarded bits 
c = a << 2;       /* 240 = 1111 0000 : Shift left 2 bits*/ 
c = a >> 2;       /* 15 = 1111 */ 
c = a >>> 2;      /* 15 = 0000 1111 : Zero fill right shift*/ 

`

لمزيد من المعلومات: انقر هنا