logo

Bitwise Operator i Java

I Java, an operatör är en symbol som utför de angivna operationerna. I det här avsnittet kommer vi bara att diskutera bitvis operator och dess typer med ordentliga exempel.

Typer av Bitwise Operator

Det finns sex typer av den bitvisa operatorn i Java:

  • Bitvis OCH
  • Bitvis exklusivt ELLER
  • Bitvis inklusive ELLER
  • Bitvis komplimang
  • Bitskiftsoperatörer
Operatörer Symbol Används
Bitvis OCH & op1 & op2
Bitvis exklusivt ELLER ^ op1 ^ op2
Bitvis inklusive ELLER | op1 | op2
Bitvis komplimang ~ ~ op
Bitvis vänsterväxling << op1 << op2
Bitvis högerväxling >> op1 >> op2
Osignerad högerväxlingsoperatör >>> på >>> antal platser att flytta

Låt oss förklara den bitvisa operatorn i detalj.

Bitvis OCH (&)

Det är en binär operator betecknad med symbolen & . Den returnerar 1 om och bara om båda bitarna är 1, annars returnerar den 0.

Bitwise Operator i Java

Låt oss använda den bitvisa AND-operatorn i ett Java-program.

int till strängen c++

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

Produktion

 x &amp; y = 8 

Bitvis exklusivt ELLER (^)

Det är en binär operator betecknad med symbolen ^ (uttalas som caret). Den returnerar 0 om båda bitarna är lika, annars returnerar den 1.

Bitwise Operator i Java

Låt oss använda den bitvis exklusiva OR-operatorn i ett Java-program.

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

Produktion

 x ^ y = 1 

Bitvis inklusive ELLER (|)

Det är en binär operator betecknad med symbolen | (uttalas som ett rör). Den returnerar 1 om någon av bitarna är 1, annars returnerar den 0.

Bitwise Operator i Java

Låt oss använda den bitvis inkluderande OR-operatorn i ett Java-program.

BitwiseInclusiveOrExample.java

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

Produktion

 x | y = 9 

Bitvis komplement (~)

Det är en unär operator som betecknas med symbolen ~ (uttalas som tilde). Den returnerar inversen eller komplementet till biten. Det gör varje 0 till 1 och varje 1 till 0.

hur man konverterar sträng till int java
Bitwise Operator i Java

Låt oss använda den bitvisa komplementoperatorn i ett Java-program.

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

Produktion

 ~x = -3 

Bitskiftsoperatörer

Skiftoperator används för att skifta bitarna antingen åt höger eller vänster. Vi kan använda skiftoperatorer om vi dividerar eller multiplicerar valfritt tal med 2. Det allmänna formatet för att skifta biten är som följer:

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

Till exempel, om a=10

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

Java tillhandahåller följande typer av skiftoperatorer:

  • Signerad högerväxlingsoperatör eller bitvis högerväxlingsoperatör
  • Osignerad högerväxlingsoperatör
  • Signerad Vänsterväxlingsoperatör eller Bitvis Vänsterväxlingsoperatör

Obs: Java stöder inte den osignerade vänsterskiftsoperatorn (<<<).< h4>

Signerad högerväxlingsoperatör (>>)

Den undertecknade högerväxlingsoperatören flyttar ett bitmönster av ett nummer mot höger med ett specificerat antal positioner och fyller 0. Operatören betecknas med symbolen >>. Den bevarar också biten längst till vänster (teckenbit). Om 0 visas längst till vänster, betyder det att numret är positiv . Om 1 visas längst till vänster, betyder det att numret är negativ .

I allmänhet, om vi skriver a>>n, betyder det att skifta bitarna av ett tal åt höger med en specificerad position (n). I termer av matematik kan vi representera den signerade högerskiftsoperatören enligt följande:

Bitwise Operator i Java

Obs: När vi tillämpar högerskiftsoperator på ett positivt tal får vi också det positiva talet i resultatet. På liknande sätt, när vi tillämpar högerskiftoperator på ett negativt tal, får vi också det negativa talet i resultatet.

Exempel: Använd den signerade högerskiftsoperatören med specificerade positioner 4 om x = 256 och x = -256.

Om x = 256

256 >> 4

256/24= 16

Om x = -256

-256 >> 4

ändra namn katalog linux

-256/24= -16

I exemplet ovan har vi observerat att efter växling omvandlas operatören 256 till 16 och -256 omvandlas till -16.

Låt oss skapa ett Java-program och implementera vänsterskiftsoperatören.

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

Produktion

 x&gt;&gt;2 = 12 

Signerad vänster växeloperatör (<<)< strong>

Den undertecknade vänsterskiftsoperatören (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Den bevarar också biten längst till vänster (teckenbit). Det bevarar inte skyltbiten.

I allmänhet, om vi skriver a< Bitwise Operator i Java

Exempel 1: Vad blir resultatet efter att ha flyttat a<<3. the value of a is 20.< strong>

Representation av 20 i binär är = 00010100

Efter att ha utfört vänster skiftoperatör får vi:

a << 3 = 10100000 (de tre sista bitarna är de fyllda bitarna)

a << 3 = 160

Låt oss kontrollera resultatet genom att använda formeln.

gimp ändra färg

20 << 3

20*23= 20*8 = 160

Exempel 2: Vad blir resultatet efter att ha flyttat a<<2. the value of a is -10.< strong>

Representation av -10 i binär är = 11110110

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

Låt oss kontrollera resultatet genom att använda formeln.

-10 << 3

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

Låt oss skapa ett Java-program och implementera den signerade vänsterskiftsoperatören.

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>

Produktion

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