logo

Bitni operator u Javi

U Javi, an operater je simbol koji izvodi navedene operacije. U ovom odjeljku raspravljat ćemo samo o bitni operator i njegove vrste s pravilnim primjerima.

Vrste bitnih operatora

U Javi postoji šest tipova bitovnog operatora:

  • Bitno I
  • Bitno isključivi OR
  • Uključivo ILI po bitovima
  • Bitwise kompliment
  • Operatori pomaka bitova
Operatori Simbol Koristi
Bitno I i op1 & op2
Bitno isključivi OR ^ op1 ^ op2
Uključivo ILI po bitovima | op1 | op2
Bitwise kompliment ~ ~ op
Pomak ulijevo po bitovima << op1 << op2
Desni pomak po bitovima >> op1 >> op2
Nepredpisani operator desnog pomaka >>> na >>> broj mjesta za pomicanje

Objasnimo detaljno bitovni operator.

Bitno I (&)

To je binarni operator označen simbolom i . Vraća 1 ako i samo ako su oba bita 1, inače vraća 0.

Bitni operator u Javi

Upotrijebimo operator AND po bitovima u Java programu.

glumac zeenat aman

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

Izlaz

 x &amp; y = 8 

Bitno isključivi ILI (^)

To je binarni operator označen simbolom ^ (izgovara se kao karet). Vraća 0 ako su oba bita ista, inače vraća 1.

Bitni operator u Javi

Upotrijebimo bitovno isključivi OR operator u Java programu.

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

Izlaz

 x ^ y = 1 

Bitno uključivo ILI (|)

To je binarni operator označen simbolom | (izgovara se kao lula). Vraća 1 ako je bilo koji od bitova 1, inače vraća 0.

Bitni operator u Javi

Upotrijebimo bit-inkluzivni OR operator u Java programu.

BitwiseInclusiveOrExample.java

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

Izlaz

 x | y = 9 

Bitni komplement (~)

To je unarni operator označen simbolom ~ (izgovara se kao tilda). Vraća inverziju ili komplement bita. Svaki 0 ​​čini 1, a svaki 1 0.

lisica protiv vuka
Bitni operator u Javi

Upotrijebimo bitni operator komplementa u Java programu.

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

Izlaz

 ~x = -3 

Operatori pomaka bitova

Operator pomaka koristi se za pomicanje bitova desno ili lijevo. Operatore pomaka možemo koristiti ako bilo koji broj podijelimo ili pomnožimo s 2. Opći format za pomak bita je sljedeći:

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

Na primjer, ako je a=10

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

Java nudi sljedeće vrste operatora pomaka:

  • Operator desnog pomaka s predznakom ili bitni operator desnog pomaka
  • Nepredpisani operator desnog pomaka
  • Predpisani operator lijevog pomaka ili bitovni operator lijevog pomaka

Napomena: Java ne podržava nepredpisani operator lijevog pomaka (<<<).< h4>

Desni operator pomaka s predznakom (>>)

Operator desnog pomaka s predznakom pomiče bitni uzorak broja prema pravo sa zadanim brojem pozicija i popunjava 0. Operator je označen simbolom >>. Također čuva krajnji lijevi bit (bit predznaka). Ako 0 je predstavljen na krajnjem lijevom bitu, to znači da je broj pozitivan . Ako 1 je predstavljen na krajnjem lijevom bitu, to znači da je broj negativan .

Općenito, ako napišemo a>>n, to znači pomaknuti bitove broja udesno s određenim položajem (n). U smislu matematike, možemo predstaviti operator desnog pomaka s predznakom na sljedeći način:

Bitni operator u Javi

Napomena: Kada primijenimo operator desnog pomaka na pozitivan broj, također ćemo dobiti pozitivan broj u rezultatu. Slično, kada primijenimo operator desnog pomaka na negativan broj, također ćemo dobiti negativan broj u rezultatu.

Primjer: Primijenite operator desnog pomaka s predznakom s navedenim pozicijama 4 ako je x = 256 i x = -256.

Ako je x = 256

256 >> 4

kako otvoriti datoteku s javom

256/24= 16

Ako je x = -256

-256 >> 4

-256/24= -16

U gornjem primjeru primijetili smo da se nakon pomaka operator 256 pretvara u 16, a -256 pretvara u -16.

Kreirajmo Java program i implementirajmo operator lijevog pomaka.

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

Izlaz

 x&gt;&gt;2 = 12 

Lijevi operator pomaka s predznakom (<<)< strong>

Predpisani operator lijevog pomaka (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Također čuva krajnji lijevi bit (bit predznaka). Ne čuva bit predznaka.

Općenito, ako napišemo a< Bitni operator u Javi

Primjer 1: Kakav će biti rezultat nakon pomaka a<<3. the value of a is 20.< strong>

Predstavljanje broja 20 u binarnom obliku je = 00010100

Nakon izvođenja operatora lijevog pomaka dobivamo:

a << 3 = 10100000 (zadnja tri bita su popunjeni bitovi)

a << 3 = 160

Provjerimo rezultat pomoću formule.

20 << 3

20*23= 20*8 = 160

Primjer 2: Kakav će biti rezultat nakon pomaka a<<2. the value of a is -10.< strong>

Predstavljanje -10 u binarnom obliku je = 11110110

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

niz json java

Provjerimo rezultat pomoću formule.

-10 << 3

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

Kreirajmo Java program i implementirajmo operator lijevog pomaka s predznakom.

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>

Izlaz

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