logo

Bitu operators Java

Java valodā an operators ir simbols, kas veic norādītās darbības. Šajā sadaļā mēs apspriedīsim tikai bitu operators un tā veidi ar pareiziem piemēriem.

Bitwise operatoru veidi

Java ir seši bitu operatora veidi:

  • Bitu UN
  • Bitu ekskluzīvs VAI
  • Ieskaitot bitus VAI
  • Bitu kompliments
  • Bitu maiņu operatori
Operatori Simbols Lietojumi
Bitu UN & op1 un op2
Bitu ekskluzīvs VAI ^ op1 ^ op2
Ieskaitot bitus VAI | op1 | op2
Bitu kompliments ~ ~ op
Bitu maiņa pa kreisi << op1 << op2
Bitu maiņa pa labi >> op1 >> op2
Neparakstīts labās maiņas operators >>> uz >>> vietu skaits, ko mainīt

Detalizēti izskaidrosim bitu operatoru.

Bitu virzienā UN (&)

Tas ir binārs operators, ko apzīmē ar simbolu & . Tas atgriež 1 tad un tikai tad, ja abi biti ir 1, pretējā gadījumā atgriež 0.

Bitu operators Java

Java programmā izmantosim operatoru bitu UN.

cik daudz augļu tur ir

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)); } } 

Izvade

 x &amp; y = 8 

Bitu ekskluzīvs VAI (^)

Tas ir binārs operators, ko apzīmē ar simbolu ^ (izrunā kā caret). Tas atgriež 0, ja abi biti ir vienādi, pretējā gadījumā atgriež 1.

Bitu operators Java

Java programmā izmantosim bitiski ekskluzīvo operatoru VAI.

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)); } } 

Izvade

 x ^ y = 1 

Bitu griezumā iekļaujot VAI (|)

Tas ir binārs operators, ko apzīmē ar simbolu | (izrunā kā caurule). Tas atgriež 1, ja kāds no bitiem ir 1, pretējā gadījumā atgriež 0.

Bitu operators Java

Java programmā izmantosim operatoru, kas ietver bitu veidu OR.

BitwiseInclusiveOrExample.java

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

Izvade

 x | y = 9 

Bitu papildināšana (~)

Tas ir unārs operators, ko apzīmē ar simbolu ~ (izrunā kā tilde). Tas atgriež bita apgriezto vai papildinājumu. Tas veido katru 0 pret 1 un katru 1 par 0.

string.valueof
Bitu operators Java

Java programmā izmantosim bitu komplementa operatoru.

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)); } } 

Izvade

 ~x = -3 

Bitu maiņu operatori

Shift operators tiek izmantots, lai pārvietotu bitus pa labi vai pa kreisi. Mēs varam izmantot maiņas operatorus, ja jebkuru skaitli dalām vai reizinām ar 2. Vispārīgais bita pārvietošanas formāts ir šāds:

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

Piemēram, ja a=10

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

Java nodrošina šādus maiņu operatoru veidus:

  • Parakstīts labās maiņas operators vai bitu labās maiņas operators
  • Neparakstīts labās maiņas operators
  • Parakstīts kreisās maiņas operators vai bitu pa kreisi maiņas operators

Piezīme: Java neatbalsta neparakstīto kreisās maiņas operatoru (<<<).< h4>

Parakstīts labās maiņas operators (>>)

Parakstītais labās maiņas operators nobīda skaitļa bitu modeli virzienā uz pa labi ar noteiktu pozīciju skaitu un aizpilda 0. Operatoru apzīmē ar simbolu >>. Tas arī saglabā vistālāk kreiso bitu (zīmes bitu). Ja 0 ir parādīts vistālāk kreisajā bitā, tas nozīmē, ka skaitlis ir pozitīvs . Ja 1 ir parādīts vistālāk kreisajā bitā, tas nozīmē, ka skaitlis ir negatīvs .

Kopumā, ja mēs rakstām a>> n, tas nozīmē pārvietot skaitļa bitus pa labi ar noteiktu pozīciju (n). Matemātikas ziņā parakstīto labās maiņas operatoru varam attēlot šādi:

Bitu operators Java

Piezīme. Ja mēs pielietojam labās maiņas operatoru pozitīvam skaitlim, mēs arī iegūstam pozitīvo skaitli rezultātā. Līdzīgi, ja mēs izmantojam labās nobīdes operatoru negatīvam skaitlim, mēs arī iegūstam negatīvo skaitli rezultātā.

Piemērs. Lietojiet parakstīto labās maiņas operatoru ar norādītajām pozīcijām 4, ja x = 256 un x = -256.

Ja x = 256

256 >> 4

256/24= 16

Ja x = -256

-256 >> 4

-256/24= -16

Iepriekš minētajā piemērā mēs novērojām, ka pēc pārslēgšanas operators 256 tiek pārveidots par 16 un -256 pārveidots par -16.

Izveidosim Java programmu un ieviesīsim kreisās maiņas operatoru.

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)); } } 

Izvade

bash mainīgais
 x&gt;&gt;2 = 12 

Parakstīts kreisās maiņas operators (<<)< strong>

Parakstīts kreisās maiņas operators (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Tas arī saglabā vistālāk kreiso bitu (zīmes bitu). Tas nesaglabā zīmes bitu.

Kopumā, ja mēs rakstām < Bitu operators Java

1. piemērs: kāds būs rezultāts pēc a< nobīdes<3. the value of a is 20.< strong>

20 attēlojums binārā ir = 00010100

Pēc kreisās maiņas operatora izpildes mēs iegūstam:

a << 3 = 10100000 (pēdējie trīs biti ir aizpildītie biti)

a << 3 = 160

Pārbaudīsim rezultātu, izmantojot formulu.

20 << 3

20*23= 20*8 = 160

2. piemērs: kāds būs rezultāts pēc a< nobīdes<2. the value of a is -10.< strong>

-10 attēlojums binārā ir = 11110110

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

Pārbaudīsim rezultātu, izmantojot formulu.

-10 << 3

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

Izveidosim Java programmu un ieviesīsim parakstīto kreisās maiņas operatoru.

kolekcija java

ParakstītsLeftShiftOperatorExample.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>

Izvade

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