---
title: bitwise operator example
localeTitle: مثال على معامل البت
---
# مشغلات bitwise

## جدول الحقيقة

![truth table](https://4.bp.blogspot.com/-0KPDI41veH0/V-OtObm_UWI/AAAAAAAAAso/CkTS0zUMGKIjlE3gUD0fMhmp-B0zcfBmACLcB/s1600/Bitwise-truthtable-Javaform.jpg "جدول الحقيقة")

تشبه مشغلات 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*/ 
` 

**لمزيد من المعلومات:** [انقر هنا](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)