logo

Bitový operátor v Javě

V Javě, an operátor je symbol, který provádí zadané operace. V této části budeme diskutovat pouze o bitový operátor a jeho typy se správnými příklady.

Typy bitových operátorů

V Javě existuje šest typů bitových operátorů:

  • Bitové AND
  • Bitově exkluzivní OR
  • Bitově včetně OR
  • Bitový kompliment
  • Operátory bitového posunu
Operátoři Symbol Použití
Bitové AND & op1 a op2
Bitově exkluzivní OR ^ op1 ^ op2
Bitově včetně OR | op1 | op2
Bitový kompliment ~ ~ op
Bitový posun doleva << op1 << op2
Bitový posun doprava >> op1 >> op2
Nepodepsaný operátor pravé směny >>> na >>> počet míst k posunu

Vysvětleme si bitový operátor podrobně.

Bitové AND (&)

Je to binární operátor označený symbolem & . Vrátí 1 tehdy a jen tehdy, když jsou oba bity 1, jinak vrátí 0.

Bitový operátor v Javě

Použijme bitový operátor AND v programu Java.

co to znamená xd

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ýstup

 x &amp; y = 8 

Bitové výhradní NEBO (^)

Je to binární operátor označený symbolem ^ (vyslovuje se jako stříška). Pokud jsou oba bity stejné, vrátí 0, jinak vrátí 1.

Bitový operátor v Javě

Použijme bitový exkluzivní operátor OR v programu 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ýstup

 x ^ y = 1 

Bitové včetně OR (|)

Je to binární operátor označený symbolem | (vyslovuje se jako dýmka). Vrátí 1, pokud je některý z bitů 1, jinak vrátí 0.

Bitový operátor v Javě

Použijme bitový operátor OR v programu Java.

BitwiseInclusiveOrExample.java

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

Výstup

 x | y = 9 

Bitový doplněk (~)

Je to unární operátor označený symbolem ~ (vyslovuje se jako tilda). Vrací inverzní hodnotu nebo doplněk bitu. Dělá to každou 0 a 1 a každou 1 0.

liška vs vlk
Bitový operátor v Javě

Použijme operátor bitového doplňku v programu 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ýstup

 ~x = -3 

Operátory bitového posunu

Operátor Shift se používá při posouvání bitů vpravo nebo vlevo. Operátory posunu můžeme použít, pokud vydělíme nebo vynásobíme libovolné číslo dvěma. Obecný formát pro posun bitu je následující:

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

Pokud například a=10

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

Java poskytuje následující typy operátorů směn:

  • Podepsaný operátor pravého posunu nebo bitový operátor pravého posunu
  • Nepodepsaný operátor pravé směny
  • Podepsaný operátor levého posunu nebo bitový operátor levého posunu

Poznámka: Java nepodporuje nepodepsaný operátor posunu vlevo (<<<).< h4>

Podepsaný operátor posunu vpravo (>>)

Operátor posunu vpravo se znaménkem posune bitový vzor čísla směrem k že jo se zadaným počtem pozic a vyplní 0. Operátor je označen symbolem >>. Také zachovává bit nejvíce vlevo (bit znaménka). Li 0 je uveden v bitu zcela vlevo, to znamená, že číslo je pozitivní . Li 1 je uveden v bitu zcela vlevo, to znamená, že číslo je negativní .

Obecně platí, že pokud píšeme a>>n, znamená to posunout bity čísla směrem doprava se zadanou pozicí (n). Z hlediska matematiky můžeme operátor posunu vpravo se znaménkem reprezentovat takto:

Bitový operátor v Javě

Poznámka: Když použijeme operátor posunu vpravo na kladné číslo, dostaneme kladné číslo také ve výsledku. Podobně, když použijeme operátor posunu vpravo na záporné číslo, dostaneme ve výsledku také záporné číslo.

Příklad: Použijte operátor posunu vpravo se zadanými pozicemi 4, pokud x = 256 a x = -256.

Pokud x = 256

256 >> 4

256/24= 16

Pokud x = -256

historie v Javě

-256 >> 4

-256/24= -16

Ve výše uvedeném příkladu jsme pozorovali, že po přeřazení operátor 256 převeden na 16 a -256 převeden na -16.

Vytvořme Java program a implementujme operátor levého řazení.

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ýstup

 x&gt;&gt;2 = 12 

Podepsaný operátor levé směny (<<)< strong>

Podepsaný operátor směny vlevo (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Také zachovává bit nejvíce vlevo (bit znaménka). Nezachovává znaménkový bit.

Obecně platí, že pokud píšeme < Bitový operátor v Javě

Příklad 1: Jaký bude výsledek po posunutí a<<3. the value of a is 20.< strong>

Reprezentace 20 v binární podobě je = 00010100

Po provedení levého operátora směny dostaneme:

a << 3 = 10100000 (poslední tři bity jsou vyplněné bity)

a << 3 = 160

Zkontrolujeme výsledek pomocí vzorce.

20 << 3

20*23= 20*8 = 160

Příklad 2: Jaký bude výsledek po posunutí a<<2. the value of a is -10.< strong>

Reprezentace -10 v binárním systému je = 11110110

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

Zkontrolujeme výsledek pomocí vzorce.

skóre přesnosti sklearn

-10 << 3

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

Vytvořme Java program a implementujeme podepsaný operátor levé směny.

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ýstup

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