logo

Bitwise operatorius Java

Java programoje an operatorius yra simbolis, kuris atlieka nurodytas operacijas. Šiame skyriuje aptarsime tik bitinis operatorius ir jo tipai su tinkamais pavyzdžiais.

Bitwise operatorių tipai

„Java“ yra šeši bitų operatoriaus tipai:

  • Bitiškai IR
  • Bitiškai išskirtinis ARBA
  • Bitai imtinai ARBA
  • Bitiškas komplimentas
  • Bit Shift operatoriai
Operatoriai Simbolis Naudoja
Bitiškai IR & op1 ir op2
Bitiškai išskirtinis ARBA ^ op1 ^ op2
Bitai imtinai ARBA | op1 | op2
Bitiškas komplimentas ~ ~ op
Bitų poslinkis į kairę << op1 << op2
Bitų poslinkis į dešinę >> op1 >> op2
Nepasirašytas dešinės pamainos operatorius >>> ant >>> vietų, kurias galima pakeisti, skaičius

Išsamiai paaiškinkime bitų operatorių.

Bitiškai IR (&)

Tai dvejetainis operatorius, žymimas simboliu & . Jis grąžina 1 tada ir tik tada, kai abu bitai yra 1, kitu atveju grąžina 0.

Bitwise operatorius Java

Java programoje naudokime bitinį IR operatorių.

min maks

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

Išvestis

 x &amp; y = 8 

Bitiškai išskirtinis ARBA (^)

Tai dvejetainis operatorius, žymimas simboliu ^ (tariama kaip caret). Jis grąžina 0, jei abu bitai yra vienodi, kitu atveju grąžina 1.

Bitwise operatorius Java

Java programoje naudokime išskirtinį bitų OR operatorių.

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

Išvestis

 x ^ y = 1 

Bitai imtinai ARBA (|)

Tai dvejetainis operatorius, žymimas simboliu | (tariama kaip pypkė). Jis grąžina 1, jei kuris nors iš bitų yra 1, kitu atveju grąžina 0.

Bitwise operatorius Java

„Java“ programoje naudokime bitų apimantį OR operatorių.

BitwiseInclusiveOrExample.java

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

Išvestis

 x | y = 9 

Bitų papildymas (~)

Tai unarinis operatorius, žymimas simboliu ~ (tariama kaip tildė). Jis grąžina bito atvirkštinį arba papildinį. Kas 0 yra 1 ir 1 0.

vilkas prieš lapę
Bitwise operatorius Java

Java programoje naudokime bitinio komplemento operatorių.

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

Išvestis

 ~x = -3 

Bit Shift operatoriai

Shift operatorius naudojamas perkeliant bitus į dešinę arba į kairę. Galime naudoti poslinkio operatorius, jei bet kurį skaičių padalijame arba padauginame iš 2. Bendras bito perkėlimo formatas yra toks:

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

Pavyzdžiui, jei a=10

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

„Java“ siūlo šių tipų pamainų operatorius:

  • Pasirašytas dešinės pamainos operatorius arba bitinis dešinės pamainos operatorius
  • Nepasirašytas dešinės pamainos operatorius
  • Pasirašytas kairiosios pamainos operatorius arba bitinis kairiosios pamainos operatorius

Pastaba: Java nepalaiko nepasirašyto poslinkio į kairę operatoriaus (<<<).< h4>

Pasirašytas dešinės pamainos operatorius (>>)

Ženklinis poslinkio į dešinę operatorius perkelia skaičiaus bitų šabloną link teisingai su nurodytu pozicijų skaičiumi ir užpildo 0. Operatorius žymimas simboliu >>. Taip pat išsaugomas kairysis bitas (ženklo bitas). Jeigu 0 yra pateiktas kairėje pusėje, tai reiškia, kad skaičius yra teigiamas . Jeigu 1 yra pateiktas kairėje pusėje, tai reiškia, kad skaičius yra neigiamas .

Apskritai, jei rašome a>>n, tai reiškia, kad skaičiaus bitai perkeliami į dešinę su nurodyta padėtimi (n). Kalbant apie matematiką, pasirašytą dešiniojo poslinkio operatorių galime pavaizduoti taip:

Bitwise operatorius Java

Pastaba: Kai pritaikome dešiniojo poslinkio operatorių teigiamam skaičiui, rezultate taip pat gauname teigiamą skaičių. Panašiai, kai neigiamam skaičiui taikome dešiniojo poslinkio operatorių, rezultate taip pat gauname neigiamą skaičių.

Pavyzdys: taikykite poslinkio į dešinę operatorių su nurodytomis 4 pozicijomis, jei x = 256 ir x = -256.

Jei x = 256

256 >> 4

256/24= 16

c++ prototipo funkcija

Jei x = -256

-256 >> 4

-256/24= -16

Aukščiau pateiktame pavyzdyje pastebėjome, kad po perjungimo operatorius 256 konvertuojamas į 16, o -256 paverčiamas į -16.

Sukurkime Java programą ir įdiegkime kairiojo poslinkio operatorių.

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

Išvestis

 x&gt;&gt;2 = 12 

Pasirašytas kairiosios pamainos operatorius (<<)< strong>

Pasirašytas kairiosios pamainos operatorius (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Taip pat išsaugomas kairysis bitas (ženklo bitas). Tai neišsaugo ženklo bito.

Apskritai, jei rašome < Bitwise operatorius Java

1 pavyzdys: koks bus rezultatas pakeitus a<<3. the value of a is 20.< strong>

Dvejetainis skaičius 20 yra = 00010100

Atlikę kairiosios pamainos operatorių, gauname:

a << 3 = 10100000 (paskutiniai trys bitai yra užpildyti)

a << 3 = 160

shilpa shetty amžius

Patikrinkime rezultatą naudodami formulę.

20 << 3

20*23= 20*8 = 160

2 pavyzdys: koks bus rezultatas pakeitus a<<2. the value of a is -10.< strong>

-10 atvaizdavimas dvejetainiu formatu yra = 11110110

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

Patikrinkime rezultatą naudodami formulę.

-10 << 3

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

Sukurkime Java programą ir įdiegkime pasirašytą kairiojo poslinkio operatorių.

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>

Išvestis

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