logo

Operatori pe biți în Java


Operatori constituie elementul de bază al oricărui limbaj de programare. Java oferă și multe tipuri de operatori care pot fi utilizați în funcție de nevoia de a efectua diverse calcule și funcții, fie ele logice, aritmetice, relaționale, etc. Aceștia sunt clasificați în funcție de funcționalitatea pe care o oferă. Iată câteva tipuri:

  1. Operatori aritmetici
  2. Operatori unari
  3. Operator de atribuire
  4. Operatori Relaționali
  5. Operatori logici
  6. Operator ternar
  7. Operatori pe biți
  8. Operatori în schimburi

Acest articol explică tot ce trebuie să știți despre operatorii pe biți.



inttostr java

Operatori pe biți

Operatorii pe biți sunt obișnuiți pentru a efectua manipularea biților individuali ai unui număr. Ele pot fi folosite cu orice tip integral (char, short, int etc.). Ele sunt utilizate atunci când se efectuează operațiuni de actualizare și interogare a arborilor indexați binari.

Acum să ne uităm la fiecare dintre operatorii pe biți din Java:

1. SAU pe biți (|)



Acest operator este un operator binar, notat cu „|”. Returnează bit cu bit SAU valorile de intrare, adică dacă oricare dintre biți este 1, dă 1, altfel arată 0.

Exemplu:

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

2. ȘI pe biți (&)



Acest operator este un operator binar, notat cu „&”. Acesta returnează bit cu bit ȘI valorile de intrare, adică dacă ambii biți sunt 1, dă 1, altfel arată 0.

Exemplu:

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

3. XOR pe biți (^)

Acest operator este un operator binar, notat cu „^”. Acesta returnează bit cu bit XOR a valorilor de intrare, adică dacă biții corespunzători sunt diferiți, dă 1, altfel arată 0.

Exemplu:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise XOR Operation of 5 and 7  0101 ^ 0111  ________  0010 = 2 (In decimal)>

4. Complement pe biți (~)

Acest operator este un operator unar, notat cu „~”. Returnează reprezentarea complementului unu a valorii de intrare, adică cu toți biții inversați, ceea ce înseamnă că face fiecare 0 la 1 și la fiecare 1 la 0.

Exemplu:

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

Notă: Compilatorul va oferi complementul 2 al acelui număr, adică complementul 2 de 10 va fi -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);   }>

Ieșire
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

Spațiu auxiliar: O(1)

Complexitatea timpului: 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]);  } }>

Ieșire
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

Operatori Bit-Shift (Operatori Shift)

Operatorii de schimbare sunt utilizați pentru a muta biții unui număr la stânga sau la dreapta, înmulțind sau împărțind astfel numărul cu doi. Ele pot fi folosite atunci când trebuie să înmulțim sau să împărțim un număr cu doi.

Sintaxă:

 number   shift_op   number_of_places_to_shift;>

Tipuri de operatori de schimb:

Operatorii de schimb sunt împărțiți în continuare în 4 tipuri. Acestea sunt:

  1. Operator de schimbare la dreapta semnat (>>)
  2. Operator de schimbare la dreapta nesemnat (>>>)
  3. Operator de schimbare la stânga(<<)
  4. Operator de schimbare la stânga fără semn (<<<)

Notă: Pentru mai multe detalii despre operatorii Shift în Java, consultați Operator Shift în Java .

.egal cu java

program pentru a implementa toți operatorii Bitwise în java pentru introducerea utilizatorului

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

Intrare

Enter first number: 4 Enter second number: 8>

Ieșire

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>

Explicaţie

Acest program solicită utilizatorului să introducă două numere, num1 și num2. Apoi efectuează următoarele operații pe biți folosind operatorii &, |, ^, ~, <> și>>>:

ȘI pe biți
SAU pe biți
XOR pe biți
Pe bit NU
Shift la stânga pe biți
Shift la dreapta pe biți
Bitwise Zero Fill Shift dreapta

Avantaje

Avantajele utilizării operatorilor pe biți în Java sunt:

  1. Viteză: Operațiile pe biți sunt mult mai rapide decât operațiile aritmetice, deoarece operează direct pe reprezentări binare ale numerelor.
  2. Optimizarea spațiului: Operațiile pe biți pot fi folosite pentru a stoca mai multe valori într-o singură variabilă, ceea ce poate fi util atunci când lucrați cu memorie limitată.
  3. Manipulare biți: Operatorii pe biți permit controlul precis asupra biților individuali ai unui număr, ceea ce poate fi util în diverse aplicații, cum ar fi criptografia, detectarea erorilor și compresia.
  4. Simplificarea codului : Operațiile pe biți pot simplifica codul prin reducerea numărului de instrucțiuni și bucle condiționate necesare pentru a efectua anumite sarcini.

În rezumat, Operatorii Bitwise sunt un instrument important pentru optimizarea performanței, îmbunătățirea lizibilității codului și reducerea complexității codului în aplicațiile Java.