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:
- Operadors aritmètics
- Operadors unaris
- Operador d'assignació
- Operadors relacionals
- Operadors lògics
- Operador Ternari
- Operadors per bits
- 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)>
JavaNota: El compilador donarà el complement a 2 d'aquest nombre, és a dir, el complement a 2 de 10 serà -6.
// 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:
- Operador de canvi a la dreta signat (>>)
- Operador de desplaçament a la dreta sense signar (>>>)
- Operador de desplaçament a l'esquerra(<<)
- 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:
- 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.
- 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.
- 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ó.
- 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.