logo

Bitwise-operaattori Javassa

Javassa an operaattori on symboli, joka suorittaa määritetyt toiminnot. Tässä osiossa käsittelemme vain bittikohtainen operaattori ja sen tyypit oikeilla esimerkeillä.

Bitwise-operaattorityypit

Javalla on kuuden tyyppistä bittikohtaista operaattoria:

  • Bitittain JA
  • Bittikohtaisesti yksinomainen TAI
  • Bittikohtainen TAI
  • Bitittainen kohteliaisuus
  • Bit Shift -operaattorit
Operaattorit Symboli Käyttää
Bitittain JA & op1 ja op2
Bittikohtaisesti yksinomainen TAI ^ op1 ^ op2
Bittikohtainen TAI | op1 | op2
Bitittainen kohteliaisuus ~ ~ op
Bittisuuntainen siirto vasemmalle << op1 << op2
Bittisuuntainen siirto oikealle >> op1 >> op2
Allekirjoittamaton oikean vuoron kuljettaja >>> osoitteessa >>> vaihtopaikkojen määrä

Selitätään bittikohtainen operaattori yksityiskohtaisesti.

Bittikohtainen JA (&)

Se on binäärioperaattori, joka on merkitty symbolilla & . Se palauttaa 1, jos ja vain jos molemmat bitit ovat 1, muussa tapauksessa palauttaa 0.

Bitwise-operaattori Javassa

Käytetään Java-ohjelmassa bittikohtaista AND-operaattoria.

se on

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

Lähtö

 x &amp; y = 8 

Bittikohtaisesti poissulkeva TAI (^)

Se on binäärioperaattori, joka on merkitty symbolilla ^ (lausutaan caret). Se palauttaa 0, jos molemmat bitit ovat samat, muussa tapauksessa palauttaa 1.

Bitwise-operaattori Javassa

Käytetään bittikohtaista poissulkevaa OR-operaattoria Java-ohjelmassa.

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

Lähtö

 x ^ y = 1 

Bittikohtainen TAI (|)

Se on binäärioperaattori, joka on merkitty symbolilla | (lausutaan piippuksi). Se palauttaa 1, jos jompikumpi bitistä on 1, muussa tapauksessa palauttaa 0.

Bitwise-operaattori Javassa

Käytetään Java-ohjelmassa bittikohtaista inklusiivista OR-operaattoria.

BitwiseInclusiveOrExample.java

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

Lähtö

 x | y = 9 

Bitittainen täydennys (~)

Se on unaarinen operaattori, joka on merkitty symbolilla ~ (lausutaan tildeksi). Se palauttaa bitin käänteisen tai komplementin. Se tekee joka 0:sta 1:stä ja joka 1:stä 0:n.

kuinka muuntaa merkkijono int javaksi
Bitwise-operaattori Javassa

Käytetään bittikohtaista komplementtioperaattoria Java-ohjelmassa.

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

Lähtö

 ~x = -3 

Bit Shift -operaattorit

Shift-operaattoria käytetään bittien siirtämiseen joko oikealle tai vasemmalle. Voimme käyttää siirtooperaattoreita, jos jaamme tai kerromme minkä tahansa luvun kahdella. Yleinen muoto bitin siirtämiseksi on seuraava:

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

Esimerkiksi jos a=10

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

Java tarjoaa seuraavan tyyppisiä vaihtooperaattoreita:

  • Allekirjoitettu oikea vuorooperaattori tai bittisuuntainen oikea vuorooperaattori
  • Allekirjoittamaton oikean vuoron kuljettaja
  • Allekirjoitettu vasen vuorooperaattori tai bittisuuntainen vasen vuorooperaattori

Huomautus: Java ei tue allekirjoittamatonta vasen vaihtooperaattoria (<<<).< h4>

Allekirjoitettu oikea vuoronkuljettaja (>>)

Merkitty oikealle siirtooperaattori siirtää luvun bittikuviota kohti oikein tietyllä määrällä paikkoja ja täyttää 0. Operaattori on merkitty symbolilla >>. Se säilyttää myös vasemmanpuoleisen bitin (merkkibitin). Jos 0 on esitetty vasemmanpuoleisimman bitin kohdalla, se tarkoittaa, että numero on positiivinen . Jos 1 on esitetty vasemmanpuoleisimman bitin kohdalla, se tarkoittaa, että numero on negatiivinen .

Yleisesti ottaen, jos kirjoitamme a>>n, se tarkoittaa luvun bittien siirtämistä oikealle tietyllä sijainnilla (n). Matematiikan termeissä voimme edustaa etumerkittyä oikealle siirtooperaattoria seuraavasti:

Bitwise-operaattori Javassa

Huomaa: Kun käytämme oikealle siirtooperaattoria positiiviseen lukuun, saamme myös positiivisen luvun tulokseen. Vastaavasti, kun käytämme oikealle siirtooperaattoria negatiiviseen lukuun, saamme myös negatiivisen luvun tulokseen.

Esimerkki: Käytä etumerkittyä oikealle siirtooperaattoria määritetyillä paikoilla 4, jos x = 256 ja x = -256.

Jos x = 256

256 >> 4

256/24= 16

Jos x = -256

-256 >> 4

mikä on hakemiston lähettäminen

-256/24= -16

Yllä olevassa esimerkissä olemme havainneet, että siirron jälkeen operaattori 256 muutettiin arvoksi 16 ja -256 muutettiin -16:ksi.

Luodaan Java-ohjelma ja toteutetaan vasen vaihtooperaattori.

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

Lähtö

 x&gt;&gt;2 = 12 

Allekirjoitettu vasen vuorooperaattori (<<)< strong>

Allekirjoitettu vasemman vuoron operaattori (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Se säilyttää myös vasemmanpuoleisen bitin (merkkibitin). Se ei säilytä merkkibittiä.

Yleensä, jos kirjoitamme < Bitwise-operaattori Javassa

Esimerkki 1: Mikä on tulos a<:n siirron jälkeen<3. the value of a is 20.< strong>

20:n esitys binäärimuodossa on = 00010100

Vasemman vuorooperaattorin suorittamisen jälkeen saamme:

a << 3 = 10100000 (kolme viimeistä bittiä ovat täytettyjä bittejä)

a << 3 = 160

Tarkastetaan tulos kaavan avulla.

java on tyhjä

20 << 3

20*23= 20*8 = 160

Esimerkki 2: Mikä on tulos a<:n siirron jälkeen<2. the value of a is -10.< strong>

Arvon -10 esitys binäärimuodossa on = 11110110

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

Tarkastetaan tulos kaavan avulla.

-10 << 3

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

Luodaan Java-ohjelma ja toteutetaan allekirjoitettu vasen siirtooperaattori.

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>

Lähtö

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