logo

Bitový operátor v jazyku Java

V Jave, an operátor je symbol, ktorý vykonáva zadané operácie. V tejto časti budeme diskutovať iba o bitový operátor a jeho typy so správnymi príkladmi.

Typy bitových operátorov

V jazyku Java existuje šesť typov bitových operátorov:

  • Bitové AND
  • Bitové exkluzívne OR
  • Bitové vrátane ALEBO
  • Bitový kompliment
  • Operátory bitového posunu
Operátori Symbol Využitie
Bitové AND & op1 a op2
Bitové exkluzívne OR ^ op1 ^ op2
Bitové vrátane ALEBO | op1 | op2
Bitový kompliment ~ ~ op
Bitový posun doľava << op1 << op2
Bitový posun doprava >> op1 >> op2
Nepodpísaný operátor radenia vpravo >>> na >>> počet miest na posun

Vysvetlime si bitový operátor podrobne.

Bitové A (&)

Je to binárny operátor označený symbolom & . Vráti 1 vtedy a len vtedy, ak sú oba bity 1, inak vráti 0.

Bitový operátor v jazyku Java

Použime bitový operátor AND v programe Java.

mapa iterácie 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)); } } 

Výkon

 x &amp; y = 8 

Bitové exkluzívne ALEBO (^)

Je to binárny operátor označený symbolom ^ (vyslovuje sa ako strieška). Ak sú oba bity rovnaké, vráti 0, inak vráti 1.

Bitový operátor v jazyku Java

Použime bitový exkluzívny operátor OR v programe 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)); } } 

Výkon

 x ^ y = 1 

Bitové vrátane ALEBO (|)

Je to binárny operátor označený symbolom | (vyslovuje sa ako fajka). Ak je jeden z bitov 1, vráti 1, inak vráti 0.

Bitový operátor v jazyku Java

Použime bitový operátor OR v programe Java.

BitwiseInclusiveOrExample.java

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

Výkon

 x | y = 9 

Bitový doplnok (~)

Je to unárny operátor označený symbolom ~ (vyslovuje sa ako tilda). Vráti inverziu alebo doplnok bitu. Robí každú 0 a 1 a každú 1 0.

vlk verzus líška
Bitový operátor v jazyku Java

Použime operátor bitového doplnku v programe 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)); } } 

Výkon

 ~x = -3 

Operátory bitového posunu

Operátor posunu sa používa na posúvanie bitov doprava alebo doľava. Operátory posunu môžeme použiť, ak vydelíme alebo vynásobíme ľubovoľné číslo 2. Všeobecný formát na posun bitu je nasledovný:

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

Napríklad, ak a=10

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

Java poskytuje nasledujúce typy operátorov zmien:

  • Podpísaný operátor pravého posunu alebo bitový operátor pravého posunu
  • Nepodpísaný operátor radenia vpravo
  • Podpísaný operátor ľavého posunu alebo bitový operátor ľavého posunu

Poznámka: Java nepodporuje nepodpísaný operátor posunu vľavo (<<<).< h4>

Podpísaný operátor posunu vpravo (>>)

Operátor posunu vpravo so znamienkom posúva bitový vzor čísla smerom k správny s určeným počtom pozícií a vyplní 0. Operátor je označený symbolom >>. Zachováva tiež bit úplne vľavo (bit znamienka). Ak 0 je uvedený v bite úplne vľavo, znamená to, že číslo je pozitívne . Ak 1 je uvedený v bite úplne vľavo, znamená to, že číslo je negatívne .

Vo všeobecnosti, ak píšeme a>>n, znamená to posunúť bity čísla smerom doprava so zadanou pozíciou (n). Z hľadiska matematiky môžeme operátor posunu vpravo reprezentovať takto:

Bitový operátor v jazyku Java

Poznámka: Keď použijeme operátor posunu vpravo na kladné číslo, dostaneme kladné číslo aj vo výsledku. Podobne, keď použijeme operátor posunu vpravo na záporné číslo, vo výsledku dostaneme aj záporné číslo.

Príklad: Použite operátor posunu vpravo so zadanými pozíciami 4, ak x = 256 a x = -256.

Ak x = 256

256 >> 4

256/24= 16

Ak x = -256

-256 >> 4

faktoriál v jazyku Java

-256/24= -16

Vo vyššie uvedenom príklade sme pozorovali, že po preradení sa operátor 256 zmenil na 16 a -256 sa zmenil na -16.

Vytvorme Java program a implementujme operátora ľavého posunu.

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

Výkon

 x&gt;&gt;2 = 12 

Podpísaný operátor ľavej zmeny (<<)< strong>

Podpísaný operátor zmeny vľavo (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Zachováva tiež bit úplne vľavo (bit znamienka). Nezachováva bit znamienka.

Vo všeobecnosti, ak píšeme < Bitový operátor v jazyku Java

Príklad 1: Aký bude výsledok po posunutí a<<3. the value of a is 20.< strong>

Zastúpenie 20 v binárnom kóde je = 00010100

Po vykonaní operátora ľavého posunu dostaneme:

a << 3 = 10100000 (posledné tri bity sú vyplnené bity)

a << 3 = 160

Skontrolujeme výsledok pomocou vzorca.

ako získať prístup k icloud fotografiám

20 << 3

20*23= 20 x 8 = 160

Príklad 2: Aký bude výsledok po posunutí a<<2. the value of a is -10.< strong>

Zastúpenie -10 v binárnom systéme je = 11110110

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

Skontrolujeme výsledok pomocou vzorca.

-10 << 3

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

Vytvorme si Java program a implementujme podpísaný operátor posunu vľavo.

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>

Výkon

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