logo

Operadors bit a bit a Java


Operadors constitueixen el bloc bàsic de qualsevol llenguatge de programació. Java també ofereix molts tipus d'operadors que es poden utilitzar segons la necessitat de realitzar diversos càlculs i funcions, ja siguin lògiques, aritmètiques, relacionals, etc. Es classifiquen en funció de la funcionalitat que proporcionen. Aquí hi ha alguns tipus:

  1. Operadors aritmètics
  2. Operadors unaris
  3. Operador d'assignació
  4. Operadors relacionals
  5. Operadors lògics
  6. Operador Ternari
  7. Operadors per bits
  8. Operadors de torn

Aquest article explica tot el que cal saber sobre els operadors de bits.



Operadors per bits

Els operadors bit a bit s'utilitzen per realitzar la manipulació de bits individuals d'un nombre. Es poden utilitzar amb qualsevol tipus integral (char, short, int, etc.). S'utilitzen quan es realitzen operacions d'actualització i consulta dels arbres indexats binaris.

Ara mirem cadascun dels operadors de bits a Java:

1. O per bits (|)



Aquest operador és un operador binari, denotat per ‘|’. Retorna bit a bit OR dels valors d'entrada, és a dir, si algun dels bits és 1, dóna 1, sinó mostra 0.

Exemple:

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

2. Bit a bit I (&)



Aquest operador és un operador binari, denotat per '&'. Retorna bit a bit AND dels valors d'entrada, és a dir, si els dos bits són 1, dóna 1, sinó mostra 0.

Exemple:

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 bit a bit (^)

Aquest operador és un operador binari, denotat per '^'. Retorna bit a bit XOR dels valors d'entrada, és a dir, si els bits corresponents són diferents, dóna 1, sinó mostra 0.

Exemple:

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

Aquest operador és un operador unari, denotat per '~'. Retorna la representació del complement únic del valor d'entrada, és a dir, amb tots els bits invertits, el que significa que fa cada 0 a 1 i cada 1 a 0.

Exemple:

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

Nota: El compilador donarà el complement a 2 d'aquest nombre, és a dir, el complement a 2 de 10 serà -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);   }>

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

Espai auxiliar: O (1)

Complexitat temporal: 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]);  } }>

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

Operadors de canvi de bits (operadors de canvi)

Els operadors de desplaçament s'utilitzen per desplaçar els bits d'un nombre cap a l'esquerra o cap a la dreta, multiplicant o dividint el nombre per dos, respectivament. Es poden utilitzar quan hem de multiplicar o dividir un nombre per dos.

Sintaxi:

 number   shift_op   number_of_places_to_shift;>

Tipus d'operadors de torn:

Els operadors de torn es divideixen a més en 4 tipus. Aquests són:

  1. Operador de canvi a la dreta signat (>>)
  2. Operador de desplaçament a la dreta sense signar (>>>)
  3. Operador de desplaçament a l'esquerra(<<)
  4. Operador de desplaçament esquerre sense signe (<<<)

Nota: Per obtenir més detalls sobre els operadors de canvi a Java, consulteu Operador de torns en Java .

programa per implementar tots els operadors de bit a java per a l'entrada de l'usuari

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

Entrada

Enter first number: 4 Enter second number: 8>

Sortida

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>

Explicació

Aquest programa demana a l'usuari que introdueixi dos números, num1 i num2. A continuació, realitza les següents operacions bit a bit utilitzant els operadors &, |, ^, ~, <> i>>>:

I per bits
O per bits
XOR bit a bit
Bit a bit NO
Desplaçament a l'esquerra per bits
Desplaçament a la dreta per bits
Canvi a la dreta d'ompliment zero per bits

harald baldr

Avantatges

Els avantatges d'utilitzar operadors bit a bit a Java són:

  1. Velocitat: Les operacions bit a bit són molt més ràpides que les operacions aritmètiques, ja que operen directament en representacions binàries de nombres.
  2. Optimització de l'espai: Les operacions bit a bit es poden utilitzar per emmagatzemar diversos valors en una sola variable, cosa que pot ser útil quan es treballa amb memòria limitada.
  3. Manipulació de bits: Els operadors bit a bit permeten un control precís sobre bits individuals d'un nombre, que pot ser útil en diverses aplicacions com ara criptografia, detecció d'errors i compressió.
  4. Simplificació del codi : Les operacions bit a bit poden simplificar el codi reduint el nombre de declaracions condicionals i bucles necessaris per realitzar determinades tasques.

En resum, els operadors de bits són una eina important per optimitzar el rendiment, millorar la llegibilitat del codi i reduir la complexitat del codi a les aplicacions Java.