logo

מפעיל Bitwise ב-Java

ב-Java, an מַפעִיל הוא סמל המבצע את הפעולות שצוינו. בחלק זה, נדון רק ב אופרטור bitwise וסוגיו עם דוגמאות מתאימות.

סוגי מפעילי Bitwise

ישנם שישה סוגים של האופרטור bitwise ב-Java:

  • Bitwise AND
  • OR בלעדי קצת
  • כולל OR
  • מחמאה ביטוויזית
  • מפעילי Bit Shift
מפעילים סֵמֶל שימושים
Bitwise AND & op1 & op2
OR בלעדי קצת ^ op1 ^ op2
כולל OR | op1 | op2
מחמאה ביטוויזית ~ ~ אופ
העברה שמאלה באופן חלקי << op1 << op2
העברה ימינה חלקית >> op1 >> op2
מפעיל העברה ימני לא חתום >>> ב->>> מספר מקומות למעבר

בואו נסביר בפירוט את האופרטור הביטבי.

Bitwise AND (&)

זהו אופרטור בינארי המסומן בסמל & . הוא מחזיר 1 אם ורק אם שני הביטים הם 1, אחרת מחזיר 0.

מפעיל Bitwise ב-Java

בוא נשתמש באופרטור AND bitwise בתוכנית Java.

השיטה העיקרית 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 

בלעדי או (^)

זהו אופרטור בינארי המסומן בסמל ^ (מבוטא כ-caret). זה מחזיר 0 אם שני הביטים זהים, אחרת מחזיר 1.

מפעיל Bitwise ב-Java

בוא נשתמש באופרטור 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 ב-Java

בוא נשתמש באופרטור OR הכולל סיביות בתוכנית Java.

BitwiseInclusiveOrExample.java

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

תְפוּקָה

 x | y = 9 

השלמה חלקית (~)

זהו אופרטור אונרי המסומן בסמל ~ (מבוטא כטילדה). זה מחזיר את ההפך או ההשלמה של הביט. זה הופך כל 0 ל-1 וכל 1 ל-0.

מגבלות של בנקאות אלקטרונית
מפעיל Bitwise ב-Java

בואו נשתמש באופרטור ההשלמה הסיבית בתוכנית 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 

מפעילי Bit Shift

אופרטור Shift משמש להזזת הביטים ימינה או שמאלה. נוכל להשתמש באופרטורים של Shift אם נחלק או נכפיל מספר כלשהו ב-2. הפורמט הכללי להזזת הביט הוא כדלקמן:

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

לדוגמה, אם a=10

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

Java מספקת את הסוגים הבאים של אופרטורים משמרת:

  • מפעיל הילוך ימני חתום או מפעיל הילוך ימני של Bitwise
  • מפעיל העברה ימני לא חתום
  • מפעיל משמרת שמאלה חתום או מפעיל משמרת שמאל ביטוויז

הערה: Java אינה תומכת באופרטור משמרת שמאל ללא חתימה (<<<).< h4>

מפעיל משמרת ימין חתום (>>)

האופרטור המשמרת ימני החתום מעביר תבנית סיביות של מספר לכיוון ימין עם מספר מוגדר של עמדות וממלא 0. האופרטור מסומן בסמל >>. זה גם משמר את הסיביות השמאלית ביותר (סיביות סימן). אם 0 מוצג בחלק השמאלי ביותר, זה אומר שהמספר הוא חִיוּבִי . אם 1 מוצג בחלק השמאלי ביותר, זה אומר שהמספר הוא שלילי .

באופן כללי, אם נכתוב a>>n, זה אומר להזיז את הביטים של מספר ימינה עם מיקום מוגדר (n). במונחים של מתמטיקה, אנו יכולים לייצג את אופרטור המשמרת הימנית בסימן כדלקמן:

מפעיל Bitwise ב-Java

הערה: כאשר אנו מיישמים אופרטור משמרת ימינה על מספר חיובי, אנו מקבלים גם את המספר החיובי בתוצאה. באופן דומה, כאשר אנו מיישמים אופרטור משמרת ימינה על מספר שלילי, אנו מקבלים גם את המספר השלילי בתוצאה.

דוגמה: החל את אופרטור המשמרת ימינה בסימן עם מיקומים שצוינו 4 אם x = 256 ו-x = -256.

אם x = 256

256 >> 4

256/24= 16

אם x = -256

-256 >> 4

-256/24= -16

בדוגמה שלמעלה, ראינו שלאחר העברת האופרטור 256 הומר ל-16 ו-256 הומר ל-16.

בואו ניצור תוכנית Java וניישם את אופרטור המשמרת השמאלית.

הדגש את הטקסט ב-CSS

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>זה גם משמר את הסיביות השמאלית ביותר (סיביות סימן). זה לא שומר על מעט השלט.

באופן כללי, אם נכתוב a< מפעיל Bitwise ב-Java

דוגמה 1: מה תהיה התוצאה לאחר הסטת a<<3. the value of a is 20.< strong>

ייצוג של 20 בבינארי הוא = 00010100

לאחר ביצוע אופרטור המשמרת השמאלית, אנו מקבלים:

a << 3 = 10100000 (שלושת הביטים האחרונים הם הביטים המלאים)

a << 3 = 160

בואו נבדוק את התוצאה באמצעות הנוסחה.

20 << 3

20*23= 20*8 = 160

דוגמה 2: מה תהיה התוצאה לאחר הסטת a<<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