logo

Bitwise Operator i Java

I Java, en operatør er et symbol, der udfører de angivne handlinger. I dette afsnit vil vi kun diskutere bitvise operator og dens typer med rigtige eksempler.

Typer af Bitwise Operator

Der er seks typer af den bitvise operator i Java:

  • Bitvis OG
  • Bitvis eksklusiv ELLER
  • Bitvis inklusive ELLER
  • Bitwise kompliment
  • Bit Shift-operatører
Operatører Symbol Bruger
Bitvis OG & op1 og op2
Bitvis eksklusiv ELLER ^ op1 ^ op2
Bitvis inklusive ELLER | op1 | op2
Bitwise kompliment ~ ~ op
Bitvist venstreskift << op1 << op2
Bitvist højreskift >> op1 >> op2
Usigneret højreskifteoperatør >>> på >>> antal pladser at skifte

Lad os forklare den bitvise operator i detaljer.

Bitvis OG (&)

Det er en binær operator angivet med symbolet & . Det returnerer 1, hvis og kun hvis begge bits er 1, ellers returnerer det 0.

Bitwise Operator i Java

Lad os bruge den bitvise AND-operator i et Java-program.

kompatibilitetstest

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 

Bitvist eksklusiv ELLER (^)

Det er en binær operator angivet med symbolet ^ (udtales som caret). Den returnerer 0, hvis begge bits er ens, ellers returnerer den 1.

Bitwise Operator i Java

Lad os bruge den bitvise eksklusive OR-operator i et 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 er en binær operator angivet med symbolet | (udtales som et rør). Den returnerer 1, hvis en af ​​bitene er 1, ellers returnerer den 0.

Bitwise Operator i Java

Lad os bruge den bitvis inkluderende OR-operator i et Java-program.

BitwiseInclusiveOrExample.java

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

Produktion

 x | y = 9 

Bitvist komplement (~)

Det er en unær operator angivet med symbolet ~ (udtales som tilde). Det returnerer den omvendte eller komplementære af bit. Det gør hver 0 til 1 og hver 1 til 0.

string.valueof
Bitwise Operator i Java

Lad os bruge den bitvise komplementoperator i et 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 

Bit Shift-operatører

Skiftoperator bruges til at flytte bits enten til højre eller venstre. Vi kan bruge skiftoperatorer, hvis vi dividerer eller multiplicerer et hvilket som helst tal med 2. Det generelle format til at skifte bit er som følger:

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

For eksempel, hvis a=10

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

Java tilbyder følgende typer skiftoperatorer:

  • Signeret højreskifteoperatør eller Bitwise Right Shift-operatør
  • Usigneret højreskifteoperatør
  • Signeret venstreskifteoperatør eller bitvis venstreskifteoperatør

Bemærk: Java understøtter ikke den usignerede venstreskiftoperator (<<<).< h4>

Signeret højreskifteoperatør (>>)

Den signerede højreskifteoperatør skifter et bitmønster af et tal mod højre med et specificeret antal positioner og fylder 0. Operatøren er angivet med symbolet >>. Den bevarer også biten længst til venstre (tegnbit). Hvis 0 vises længst til venstre, betyder det, at tallet er positiv . Hvis 1 vises længst til venstre, betyder det, at tallet er negativ .

Generelt, hvis vi skriver a>>n, betyder det at flytte bits af et tal mod højre med en specificeret position (n). Med hensyn til matematik kan vi repræsentere den fortegnede højreskifteoperatør som følger:

Bitwise Operator i Java

Bemærk: Når vi anvender højreskiftoperator på et positivt tal, får vi også det positive tal i resultatet. På samme måde, når vi anvender højre skiftoperator på et negativt tal, får vi også det negative tal i resultatet.

Eksempel: Anvend den signerede højreskiftoperator med specificerede positioner 4, hvis x = 256 og x = -256.

Hvis x = 256

256 >> 4

256/24= 16

Hvis x = -256

-256 >> 4

-256/24= -16

I ovenstående eksempel har vi observeret, at efter skift konverterede operatøren 256 til 16 og -256 konverterede til -16.

cdr fuld form

Lad os oprette et Java-program og implementere venstreskiftsoperatø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 

Signeret venstreskifteoperatør (<<)< strong>

Den underskrevne venstreskiftsoperatør (<<) shifts a bit pattern to the left. it is represented by symbol <<.< strong>Det bevarer også bit længst til venstre (tegnbit). Det bevarer ikke skiltet.

Generelt, hvis vi skriver a< Bitwise Operator i Java

Eksempel 1: Hvad bliver resultatet efter forskydning af a<<3. the value of a is 20.< strong>

Repræsentation af 20 i binær er = 00010100

Efter at have udført venstreskifteoperatøren får vi:

a << 3 = 10100000 (sidste tre bits er de udfyldte bits)

a << 3 = 160

Lad os tjekke resultatet ved at bruge formlen.

20 << 3

python chr funktion

20*23= 20*8 = 160

Eksempel 2: Hvad bliver resultatet efter forskydning af a<<2. the value of a is -10.< strong>

Repræsentation af -10 i binær er = 11110110

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

Lad os tjekke resultatet ved at bruge formlen.

-10 << 3

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

Lad os oprette et Java-program og implementere den signerede venstreskiftsoperatør.

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