logo

Bitwise Operators i Java


Operatører udgør den grundlæggende byggesten i ethvert programmeringssprog. Java giver også mange typer operatører, som kan bruges efter behovet for at udføre forskellige beregninger og funktioner, det være sig logiske, aritmetiske, relationelle osv. De er klassificeret baseret på den funktionalitet, de leverer. Her er et par typer:

  1. Aritmetiske operatorer
  2. Unære operatører
  3. Opdragsoperatør
  4. Relationelle operatører
  5. Logiske operatører
  6. Ternær operatør
  7. Bitwise operatører
  8. Skift operatører

Denne artikel forklarer alt, hvad man behøver at vide om Bitwise Operators.

Bitwise operatører

Bitvise operatorer bruges til at udføre manipulation af individuelle bits af et tal. De kan bruges med enhver integral type (char, short, int osv.). De bruges, når der udføres opdaterings- og forespørgselsoperationer af de binære indekserede træer.



ændre fil linux

Lad os nu se på hver enkelt af de bitvise operatører i Java:

1. Bitvis ELLER (|)

Denne operator er en binær operator, betegnet med '|'. Den returnerer bit for bit ELLER af inputværdier, dvs. hvis en af ​​bitsene er 1, giver den 1, ellers viser den 0.

Eksempel:

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 OG (&)

Denne operator er en binær operator, betegnet med '&.' Den returnerer bit for bit OG af inputværdier, dvs. hvis begge bits er 1, giver den 1, ellers viser den 0.

Eksempel:

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

3. Bitwise XOR (^)

Denne operator er en binær operator, betegnet med '^.' Den returnerer bit for bit XOR af inputværdier, dvs. hvis tilsvarende bits er forskellige, giver den 1, ellers viser den 0.

dfs algoritme

Eksempel:

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 (~)

Denne operator er en unær operator, betegnet med '~.' Den returnerer ens komplementrepræsentation af inputværdien, dvs. med alle bit inverteret, hvilket betyder at den laver hver 0 til 1 og hver 1 til 0.

Eksempel:

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

Bemærk: Compiler vil give 2's komplement af dette tal, dvs. 2's komplement på 10 vil være -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ælpeplads:O(1)

Tidskompleksitet:O(1)

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-operatører (Shift-operatører)

Skiftoperatorer bruges til at flytte bits af et tal til venstre eller højre, hvorved tallet henholdsvis ganges eller divideres med to. De kan bruges, når vi skal gange eller dividere et tal med to.

Syntaks:

 number   shift_op   number_of_places_to_shift;>

Typer af skiftoperatører:

Skiftoperatører er yderligere opdelt i 4 typer. Disse er:

  1. Signeret højreskifteoperatør (>>)
  2. Usigneret højreskiftsoperatør (>>>)
  3. Venstre skift operator(<<)
  4. Usigneret venstreskiftsoperatør (<<<)

Bemærk: For flere detaljer om Shift Operators i Java, se Skift-operatør i Java .

parse streng til int

program til at implementere alle Bitwise-operatører i java til brugerinput

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

Input

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>

Forklaring

Dette program beder brugeren om at indtaste to tal, num1 og num2. Den udfører derefter følgende bitvise operationer ved hjælp af &, |, ^, ~, <> og>>> operatorerne:

Bitvis OG
Bitvis ELLER
Bitvist XOR
Bitvis IKKE
Bitvis venstre skift
Bitvis højre skift
Bitwise Zero Fyld Højre Shift

Fordele

Fordelene ved at bruge Bitwise Operators i Java er:

  1. Fart: Bitvise operationer er meget hurtigere end aritmetiske operationer, da de opererer direkte på binære repræsentationer af tal.
  2. Pladsoptimering: Bitvise operationer kan bruges til at gemme flere værdier i en enkelt variabel, hvilket kan være nyttigt, når du arbejder med begrænset hukommelse.
  3. Bit manipulation: Bitvise operatører giver mulighed for præcis kontrol over individuelle bits af et tal, hvilket kan være nyttigt i forskellige applikationer såsom kryptografi, fejldetektion og komprimering.
  4. Kodeforenkling : Bitvise operationer kan forenkle koden ved at reducere antallet af betingede sætninger og sløjfer, der kræves for at udføre visse opgaver.

Sammenfattende er Bitwise Operators et vigtigt værktøj til at optimere ydeevnen, forbedre kodelæsbarheden og reducere kodekompleksiteten i Java-applikationer.