logo

Bitwise-operator in Java

Op Java is een exploitant is een symbool dat de opgegeven bewerkingen uitvoert. In deze sectie bespreken we alleen de bitwise-operator en zijn typen met de juiste voorbeelden.

Soorten bitsgewijze operatoren

Er zijn zes typen bitwise-operatoren in Java:

  • Bitsgewijs EN
  • Bitwise exclusieve OR
  • Bitgewijze inclusief OR
  • Bitwise compliment
  • Bitshift-operatoren
Exploitanten Symbool Toepassingen
Bitsgewijs EN & op1 & op2
Bitwise exclusieve OR ^ op1 ^ op2
Bitgewijze inclusief OR | op1 | op2
Bitwise compliment ~ ~ op
Bitsgewijs naar links verschuiven << op1 << op2
Bitsgewijs naar rechts verschuiven >> op1 >> op2
Ongetekende Right Shift-operator >>> op >>> aantal plaatsen om te verschuiven

Laten we de bitsgewijze operator in detail uitleggen.

Bitsgewijze AND (&)

Het is een binaire operator die wordt aangegeven met het symbool & . Het retourneert 1 als en slechts als beide bits 1 zijn, anders wordt 0 geretourneerd.

Bitwise-operator in Java

Laten we de bitsgewijze AND-operator gebruiken in een Java-programma.

naam van de Amerikaanse stad

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

Uitvoer

 x &amp; y = 8 

Bitsgewijs exclusief OR (^)

Het is een binaire operator die wordt aangegeven met het symbool ^ (uitgesproken als caret). Het retourneert 0 als beide bits hetzelfde zijn, anders wordt 1 geretourneerd.

Bitwise-operator in Java

Laten we de bitsgewijze exclusieve OR-operator in een Java-programma gebruiken.

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

Uitvoer

 x ^ y = 1 

Bitsgewijs inclusief OF (|)

Het is een binaire operator die wordt aangegeven met het symbool | (uitgesproken als pijp). Het retourneert 1 als een van de bits 1 is, anders wordt 0 geretourneerd.

Bitwise-operator in Java

Laten we de bitsgewijze inclusieve OR-operator gebruiken in een Java-programma.

BitwiseInclusiveOrExample.java

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

Uitvoer

 x | y = 9 

Bitsgewijze aanvulling (~)

Het is een unaire operator die wordt aangegeven met het symbool ~ (uitgesproken als de tilde). Het retourneert de inverse of het complement van de bit. Het maakt elke 0 een 1 en elke 1 een 0.

mooiste glimlach ter wereld
Bitwise-operator in Java

Laten we de bitsgewijze complementoperator in een Java-programma gebruiken.

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

Uitvoer

 ~x = -3 

Bitshift-operatoren

Shift-operator wordt gebruikt bij het verschuiven van de bits naar rechts of naar links. We kunnen shift-operatoren gebruiken als we een getal delen of vermenigvuldigen met 2. Het algemene formaat om de bit te verschuiven is als volgt:

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

Als a=10 bijvoorbeeld

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

Java biedt de volgende typen ploegoperatoren:

  • Ondertekende Right Shift-operator of Bitwise Right Shift-operator
  • Ongetekende Right Shift-operator
  • Ondertekende Left Shift Operator of Bitwise Left Shift Operator

Opmerking: Java ondersteunt de niet-ondertekende linker shift-operator (<<<).< h4>

Getekende Right Shift-operator (>>)

De ondertekende rechter shift-operator verschuift een bitpatroon van een getal naar de rechts met een opgegeven aantal posities en vullingen 0. De operator wordt aangegeven met het symbool >>. Het behoudt ook het meest linkse bit (tekenbit). Als 0 wordt weergegeven op het meest linkse bit, dit betekent dat het nummer dat is positief . Als 1 wordt weergegeven op het meest linkse bit, dit betekent dat het nummer dat is negatief .

Als we a>>n schrijven, betekent dit in het algemeen dat we de bits van een getal naar rechts verschuiven met een gespecificeerde positie (n). In termen van wiskunde kunnen we de getekende rechterverschuivingsoperator als volgt weergeven:

Bitwise-operator in Java

Opmerking: wanneer we de rechter shift-operator op een positief getal toepassen, krijgen we ook het positieve getal in het resultaat. Op dezelfde manier krijgen we, wanneer we de rechter shift-operator op een negatief getal toepassen, ook het negatieve getal in het resultaat.

Voorbeeld: Pas de getekende rechtse shift-operator toe met gespecificeerde posities 4 als x = 256 en x = -256.

Als x = 256

256 >> 4

256/24= 16

Als x = -256

hoe de school is uitgevonden

-256 >> 4

-256/24= -16

In het bovenstaande voorbeeld hebben we waargenomen dat na het verschuiven de operator 256 is omgezet in 16 en -256 is omgezet in -16.

Laten we een Java-programma maken en de linkershiftoperator implementeren.

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

Uitvoer

 x&gt;&gt;2 = 12 

Getekende linkerploegbediende (<<)< strong>

De ondertekende linkerploegbediende (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Het behoudt ook het meest linkse bit (tekenbit). Het behoudt het tekenbit niet.

Als we in het algemeen a< Bitwise-operator in Java

Voorbeeld 1: Wat zal het resultaat zijn na het verschuiven van a<<3. the value of a is 20.< strong>

Weergave van 20 in binair getal is = 00010100

Na het uitvoeren van de linkershiftoperator krijgen we:

a << 3 = 10100000 (laatste drie bits zijn de gevulde bits)

een << 3 = 160

Laten we het resultaat controleren met behulp van de formule.

20<<3

20*23= 20*8 = 160

Voorbeeld 2: Wat is het resultaat na het verschuiven van a<<2. the value of a is -10.< strong>

Weergave van -10 in binair getal is = 11110110

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

Laten we het resultaat controleren met behulp van de formule.

Booleaans naar tekenreeks

-10 <<3

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

Laten we een Java-programma maken en de ondertekende linkerploegoperator implementeren.

OndertekendLeftShiftOperatorExample.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>

Uitvoer

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