logo

عامل Bitwise في جافا

في جافا، ان المشغل أو العامل هو الرمز الذي ينفذ العمليات المحددة. في هذا القسم سنناقش فقط عامل bitwise وأنواعه مع الأمثلة المناسبة.

أنواع مشغلات Bitwise

هناك ستة أنواع من معاملات bitwise في Java:

  • Bitwise AND
  • Bitwise حصريًا OR
  • شاملاً للبت OR
  • مجاملة على مستوى البت
  • مشغلي التحول بت
العاملين رمز الاستخدامات
Bitwise AND & المرجع 1 والمرجع 2
Bitwise حصريًا OR ^ المرجع 1 ^ المرجع 2
شاملاً للبت OR | المرجع 1 | المرجع 2
مجاملة على مستوى البت ~ ~ المرجع
التحول إلى اليسار باتجاه البت << المرجع 1 << المرجع 2
التحول إلى اليمين باتجاه البت >> المرجع 1 >> المرجع 2
مشغل التحول الأيمن غير الموقع >>> على >>> عدد الأماكن للتحول

دعونا نشرح عامل bitwise بالتفصيل.

Bitwise AND (&)

إنه عامل ثنائي يُشار إليه بالرمز & . تُرجع 1 إذا وفقط إذا كان كلا البتين 1، وإلا تُرجع 0.

عامل Bitwise في جافا

دعونا نستخدم عامل التشغيل AND في برنامج Java.

فئة مقابل كائن جافا

BitwiseAndExample.java

 public class BitwiseAndExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise and // 1001 &amp; 1000 = 1000 = 8 System.out.println(&apos;x &amp; y = &apos; + (x &amp; y)); } } 

انتاج |

 x &amp; y = 8 

حصريًا للبت OR (^)

إنه عامل ثنائي يُشار إليه بالرمز ^ (تنطق كعلامة الإقحام). تُرجع 0 إذا كان كلا البتين متماثلين، وإلا تُرجع 1.

عامل Bitwise في جافا

دعونا نستخدم عامل التشغيل OR الحصري للبت في برنامج Java.

BitwiseXorExample.java

 public class BitwiseXorExample { public static void main(String[] args) { int x = 9, y = 8; // bitwise XOR // 1001 ^ 1000 = 0001 = 1 System.out.println(&apos;x ^ y = &apos; + (x ^ y)); } } 

انتاج |

 x ^ y = 1 

شامل للبت OR (|)

إنه عامل ثنائي يُشار إليه بالرمز | (تُنطق كأنبوب). يتم إرجاع 1 إذا كان أي من البتات هو 1، وإلا يتم إرجاع 0.

عامل Bitwise في جافا

دعونا نستخدم عامل التشغيل OR الشامل للبت في برنامج Java.

BitwiseInclusiveOrExample.java

 public class BitwiseInclusiveOrExample { public static void main(String[] args) y = &apos; + (x } 

انتاج |

 x | y = 9 

تكملة Bitwise (~)

إنه عامل أحادي يُشار إليه بالرمز ~ (تُنطق كالتيلدا). تقوم بإرجاع معكوس أو تكملة البتة. يجعل كل 0 1 وكل 1 0.

معجميا
عامل Bitwise في جافا

دعونا نستخدم عامل التشغيل المكمل للبت في برنامج Java.

BitwiseComplimentExample.java

 public class BitwiseComplimentExample { public static void main(String[] args) { int x = 2; // bitwise compliment // ~0010= 1101 = -3 System.out.println(&apos;~x = &apos; + (~x)); } } 

انتاج |

 ~x = -3 

مشغلي التحول قليلا

يتم استخدام عامل Shift في تحويل البتات إما لليمين أو لليسار. يمكننا استخدام عوامل التحويل إذا قسمنا أو ضربنا أي رقم في 2. التنسيق العام لتحويل البت هو كما يلي:

 variable &lt;&gt; number of places to shift; 

على سبيل المثال، إذا كان أ = 10

 a&gt;&gt;2; //shifts two bits a&gt;&gt;4; //shifts 4 bits 

توفر Java الأنواع التالية من عوامل النقل:

  • مُوقع عامل Shift لليمين أو عامل Bitwise لليمين
  • مشغل التحول الأيمن غير الموقع
  • عامل التحول الأيسر المُوقع أو عامل التحول الأيسر Bitwise

ملاحظة: لا تدعم Java عامل النقل الأيسر غير الموقع (<<<).< h4>

عامل النقل لليمين المُوقع (>>)

يقوم عامل التحول الأيمن الموقع بإزاحة نمط بت من رقم نحو يمين مع عدد محدد من المواضع والتعبئة 0. تتم الإشارة إلى المشغل بالرمز >>. كما أنه يحتفظ بالبت الموجود في أقصى اليسار (بت الإشارة). لو 0 يتم تقديمه في أقصى اليسار، فهذا يعني أن الرقم هو إيجابي . لو 1 يتم تقديمه في أقصى اليسار، فهذا يعني أن الرقم هو سلبي .

بشكل عام، إذا كتبنا a>>n، فهذا يعني نقل بتات الرقم نحو اليمين بموضع محدد (n). من حيث الرياضيات، يمكننا تمثيل عامل الإزاحة اليمنى الموقع على النحو التالي:

عامل Bitwise في جافا

ملحوظة: عندما نطبق عامل التحول لليمين على رقم موجب، نحصل على الرقم الموجب في النتيجة أيضًا. وبالمثل، عندما نطبق عامل التحول الأيمن على رقم سالب، نحصل على الرقم السالب في النتيجة أيضًا.

مثال: قم بتطبيق عامل النقل لليمين الموقع مع المواضع المحددة 4 إذا كانت x = 256 وx = -256.

إذا س = 256

256 >> 4

٢٥٦/٢4= 16

إذا س = -256

-256 >> 4

-256/24= -16

أمثلة على برنامج بايثون

في المثال أعلاه، لاحظنا أنه بعد إزاحة العامل 256 تم تحويله إلى 16 و -256 تم تحويله إلى -16.

لنقم بإنشاء برنامج Java وتنفيذ عامل التحول الأيسر.

SignedRightShiftOperatorExample.java

 public class SignedRightShiftOperatorExample { public static void main(String args[]) { int x = 50; System.out.println(&apos;x&gt;&gt;2 = &apos; + (x &gt;&gt;2)); } } 

انتاج |

 x&gt;&gt;2 = 12 

مشغل التحول الأيسر المُوقع (<<)< strong>

عامل التحول الأيسر الموقع (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>كما أنه يحتفظ بالبت الموجود في أقصى اليسار (بت الإشارة). ولا يحافظ على بت الإشارة.

بشكل عام، إذا كتبنا < عامل Bitwise في جافا

مثال 1: ماذا ستكون النتيجة بعد إزاحة <<3. the value of a is 20.< strong>

تمثيل 20 في ثنائي هو = 00010100

بعد إجراء عامل التحول الأيسر، نحصل على:

أ << 3 = 10100000 (آخر ثلاث بتات هي البتات المملوءة)

أ << 3 = 160

دعونا نتحقق من النتيجة باستخدام الصيغة.

20 << 3

20*23= 20*8 = 160

مثال 2: ماذا ستكون النتيجة بعد إزاحة <<2. the value of a is -10.< strong>

تمثيل -10 بالثنائي هو = 11110110

أ<<2 11011000='<strong' =>-40

دعونا نتحقق من النتيجة باستخدام الصيغة.

-10 << 3

فئة مجردة مقابل واجهة

-10*22= -10*4 = -40

لنقم بإنشاء برنامج Java وتنفيذ عامل التحول الأيسر الموقع.

SignedLeftShiftOperatorExample.java

 public class SignedLeftShiftOperatorExample { public static void main(String args[]) { int x = 12; System.out.println(&apos;x&lt;<1 = ' + (x << 1)); } < pre> <p> <strong>Output</strong> </p> <pre> x&lt;<1 24 = < pre> <h3>Unsigned Right Shift Operator (&gt;&gt;&gt;)</h3> <p>It shifts a zero at the leftmost position and fills 0. It is denoted by the symbol <strong>&gt;&gt;&gt;.</strong> Note that the leftmost position after &gt;&gt; depends on the sign bit. It does not preserve the sign bit.</p> <p> <strong>Example: If a=11110000 and b=2, find a&gt;&gt;&gt;b?</strong> </p> <p>a &gt;&gt;&gt; b = 11110000 &gt;&gt;&gt; 2 = <strong>00111100</strong> </p> <p>The left operand value is moved right by the number of bits specified by the right operand and the shifted bits are filled up with zeros. Excess bits shifted off to the right are discarded.</p> <p>Therefore, before shifting the bits the decimal value of a is 240, and after shifting the bits the decimal value of a is 60.</p> <p>Let&apos;s create a Java program and use the unsigned right shift operator.</p> <p> <strong>UnsignedRightShiftOperatorExample.java</strong> </p> <pre> public class UnsignedRightShiftOperatorExample { public static void main(String args[]) { int x = 20; System.out.println(&apos;x&gt;&gt;&gt;2 = &apos; + (x &gt;&gt;&gt;2)); } } </pre> <p> <strong>Output</strong> </p> <pre> x&gt;&gt;&gt;2 = 5 </pre> <hr></1></pre></1>

انتاج |

 x&gt;&gt;&gt;2 = 5