logo

Bitwise-operatörer i Java


Operatörer utgör den grundläggande byggstenen i alla programmeringsspråk. Även Java tillhandahåller många typer av operatorer som kan användas efter behovet av att utföra olika beräkningar och funktioner, vare sig det är logiskt, aritmetiskt, relationellt, etc. De klassificeras utifrån den funktionalitet de tillhandahåller. Här är några typer:

'prim's algoritm'
  1. Aritmetiska operatorer
  2. Unära operatörer
  3. Uppdragsoperatör
  4. Relationella operatörer
  5. Logiska operatörer
  6. Ternär operatör
  7. Bitwise operatörer
  8. Skiftoperatörer

Den här artikeln förklarar allt man behöver veta om Bitwise Operators.

Bitwise operatörer

Bitvisa operatorer används för att utföra manipulation av enskilda bitar av ett nummer. De kan användas med vilken integraltyp som helst (kol, kort, int, etc.). De används när du utför uppdaterings- och frågeoperationer för de binära indexerade träden.



Låt oss nu titta på var och en av de bitvisa operatorerna i Java:

1. Bitvis ELLER (|)

Denna operator är en binär operator, betecknad med '|'. Den returnerar bit för bit ELLER av ingångsvärden, d.v.s. om någon av bitarna är 1, ger den 1, annars visar den 0.

Exempel:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise OR Operation of 5 and 7  0101 | 0111  ________  0111 = 7 (In decimal)>

2. Bitvis OCH (&)

java cast int till sträng

Denna operator är en binär operator, betecknad med '&.' Den returnerar bit för bit OCH av ingångsvärden, d.v.s. om båda bitarna är 1, ger den 1, annars visar den 0.

Exempel:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise AND Operation of 5 and 7  0101 & 0111  ________  0101 = 5 (In decimal)>

3. Bitvis XOR (^)

Denna operator är en binär operator, betecknad med '^.' Den returnerar bit för bit XOR av ingångsvärden, d.v.s. om motsvarande bitar är olika ger den 1, annars visar den 0.

Exempel:

sessionen har löpt ut
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise XOR Operation of 5 and 7  0101 ^ 0111  ________  0010 = 2 (In decimal)>

4. Bitvis komplement (~)

Denna operator är en unär operator, betecknad med '~.' Den returnerar ettans komplementrepresentation av ingångsvärdet, dvs med alla bitar inverterade, vilket betyder att den gör varje 0 till 1 och varje 1 till 0.

Exempel:

a = 5 = 0101 (In Binary)  Bitwise Complement Operation of 5  ~ 0101  ________  1010 = 10 (In decimal)>

Notera: Kompilatorn kommer att ge 2:s komplement av det numret, d.v.s. 2:s komplement av 10 kommer att vara -6.

Java
// Java program to illustrate // bitwise operators public class operators {  public static void main(String[] args)   b));  // bitwise xor  // 0101 ^ 0111=0010 = 2  System.out.println('a^b = ' + (a ^ b));  // bitwise not  // ~00000000 00000000 00000000 00000101=11111111 11111111 11111111 11111010  // will give 2's complement (32 bit) of 5 = -6  System.out.println('~a = ' + ~a);  // can also be combined with  // assignment operator to provide shorthand  // assignment  // a=a&b  a &= b;  System.out.println('a= ' + a);   }>

Produktion
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

Hjälputrymme:O(1)

Tidskomplexitet:O(1)

typ variabler java
Java
// Demonstrating the bitwise logical operators class GFG {  public static void main (String[] args) {    String binary[]={  '0000','0001','0010','0011','0100','0101',  '0110','0111','1000','1001','1010',  '1011','1100','1101','1110','1111'  };    // initializing the values of a and b   int a=3; // 0+2+1 or 0011 in binary  int b=6; // 4+2+0 or 0110 in binary    // bitwise or  int c= a | b;    // bitwise and  int d= a & b;    // bitwise xor  int e= a ^ b;    // bitwise not  int f= (~a & b)|(a &~b);  int g= ~a & 0x0f;      System.out.println(' a= '+binary[a]);  System.out.println(' b= '+binary[b]);  System.out.println(' a|b= '+binary[c]);  System.out.println(' a&b= '+binary[d]);  System.out.println(' a^b= '+binary[e]);  System.out.println('~a & b|a&~b= '+binary[f]);  System.out.println('~a= '+binary[g]);  } }>

Produktion
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

Bit-Shift Operators (Shift Operators)

Skiftoperatorer används för att flytta bitarna av ett tal åt vänster eller höger, och därigenom multiplicera eller dividera talet med två respektive. De kan användas när vi ska multiplicera eller dividera ett tal med två.

Syntax:

 number   shift_op   number_of_places_to_shift;>

Typer av växlingsoperatörer:

Skiftoperatörer är ytterligare indelade i 4 typer. Dessa är:

  1. Signerad högerväxlingsoperatör (>>)
  2. Osignerad högerväxlingsoperatör (>>>)
  3. Vänster skiftoperatör(<<)
  4. Osignerad vänsterskiftsoperatör (<<<)

Notera: För mer information om Shift Operators i Java, se Skiftoperatör i Java .

program för att implementera alla Bitwise-operatorer i java för användarinmatning

Java
import java.util.Scanner; public class BitwiseOperators {  public static void main(String[] args)   Scanner input = new Scanner(System.in);  System.out.print('Enter first number: ');  int num1 = input.nextInt();  System.out.print('Enter second number: ');  int num2 = input.nextInt();  System.out.println('Bitwise AND: ' + (num1 & num2));  System.out.println('Bitwise OR: ' + (num1  }>

Inmatning

Enter first number: 4 Enter second number: 8>

Produktion

Bitwise AND: 0 Bitwise OR: 12 Bitwise XOR: 12 Bitwise NOT: -5 Bitwise Left Shift: 16 Bitwise Right Shift: 1 Bitwise Unsigned Right Shift: 1>

Förklaring

Detta program uppmanar användaren att ange två siffror, num1 och num2. Den utför sedan följande bitvisa operationer med operatorerna &, |, ^, ~, <> och>>>:

Bitvis OCH
Bitvis ELLER
Bitvis XOR
Bitvis INTE
Vänsterväxling bitvis
Bitvis högerväxling
Bitvis nollfyllning höger skift

Fördelar

Fördelarna med att använda Bitwise Operators i Java är:

fel: kunde inte hitta eller ladda huvudklassen
  1. Fart: Bitvisa operationer är mycket snabbare än aritmetiska operationer eftersom de fungerar direkt på binära representationer av tal.
  2. Utrymmesoptimering: Bitvisa operationer kan användas för att lagra flera värden i en enda variabel, vilket kan vara användbart när man arbetar med begränsat minne.
  3. Bitmanipulation: Bitvisa operatorer möjliggör exakt kontroll över enskilda bitar av ett nummer, vilket kan vara användbart i olika applikationer som kryptografi, feldetektering och komprimering.
  4. Kodförenkling : Bitvisa operationer kan förenkla koden genom att minska antalet villkorssatser och loopar som krävs för att utföra vissa uppgifter.

Sammanfattningsvis är Bitwise Operators ett viktigt verktyg för att optimera prestanda, förbättra kodläsbarheten och minska kodkomplexiteten i Java-applikationer.