60 lines
3.6 KiB
Markdown
60 lines
3.6 KiB
Markdown
---
|
|
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) |