Exploitanten vormen de basisbouwsteen van elke programmeertaal. Ook Java biedt vele soorten operatoren die kunnen worden gebruikt afhankelijk van de noodzaak om verschillende berekeningen en functies uit te voeren, zij het logisch, rekenkundig, relationeel, enz. Ze worden geclassificeerd op basis van de functionaliteit die ze bieden. Hier zijn een paar soorten:
- Rekenkundige operatoren
- Unaire operators
- Opdracht Operator
- Relationele operators
- Logische operatoren
- Ternaire operator
- Bitwise-operatoren
- Shift-operatoren
In dit artikel wordt alles uitgelegd wat u moet weten over Bitwise Operators.
Bitwise-operatoren
Bitsgewijze operatoren worden gebruikt om de manipulatie van individuele bits van een getal uit te voeren. Ze kunnen worden gebruikt met elk integraaltype (char, short, int, enz.). Ze worden gebruikt bij het uitvoeren van update- en querybewerkingen van de binaire geïndexeerde bomen.
Laten we nu eens kijken naar elk van de bitsgewijze operatoren in Java:
1. Bitsgewijze OF (|)
snel sorteren
Deze operator is een binaire operator, aangegeven met ‘|’. Het retourneert bit voor bit OF van invoerwaarden, dat wil zeggen: als een van de bits 1 is, geeft het 1, anders toont het 0.
Voorbeeld:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise OR Operation of 5 and 7 0101 | 0111 ________ 0111 = 7 (In decimal)>
2. Bitsgewijze AND (&)
Deze operator is een binaire operator, aangegeven met ‘&’. Hij retourneert bit voor bit EN van invoerwaarden, d.w.z. als beide bits 1 zijn, geeft deze 1, anders wordt 0 weergegeven.
Voorbeeld:
tekenreeks naar Java-teken
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise AND Operation of 5 and 7 0101 & 0111 ________ 0101 = 5 (In decimal)>
3. Bitsgewijze XOR (^)
Deze operator is een binaire operator, aangegeven met ‘^.’ Hij retourneert bit voor bit XOR van invoerwaarden, d.w.z. als de corresponderende bits verschillend zijn, geeft hij 1, anders toont hij 0.
Voorbeeld:
javascript voor vervolgkeuzelijst
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise XOR Operation of 5 and 7 0101 ^ 0111 ________ 0010 = 2 (In decimal)>
4. Bitsgewijze aanvulling (~)
Deze operator is een unaire operator, aangegeven met ‘~.’ Hij retourneert de ene-complementrepresentatie van de invoerwaarde, dat wil zeggen met alle bits omgekeerd, wat betekent dat elke 0 op 1 en elke 1 op 0 wordt gesteld.
Voorbeeld:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
JavaOpmerking: De compiler zal het 2-complement van dat getal geven, d.w.z. het 2-complement van 10 zal -6 zijn.
// 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); }> Uitvoer
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Hulpruimte:O(1)
Tijdcomplexiteit: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]); } }> Uitvoer
a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>
Bit-Shift-operatoren (Shift-operatoren)
Shift-operatoren worden gebruikt om de bits van een getal naar links of rechts te verschuiven, waardoor het getal respectievelijk door twee wordt vermenigvuldigd of gedeeld. Ze kunnen worden gebruikt als we een getal moeten vermenigvuldigen of delen door twee.
Syntaxis:
number shift_op number_of_places_to_shift;>
Soorten ploegendiensten:
verilog-parameter
Shift Operators zijn verder onderverdeeld in 4 typen. Dit zijn:
- Getekend Rechterploegmedewerker (>>)
- Niet-ondertekende rechterploegoperator (>>>)
- Linkerploegmedewerker(<<)
- Niet-ondertekende linkerploegmedewerker (<<<)
Opmerking: Voor meer details over de Shift-operatoren in Java, zie Shift-operator in Java .
programma om alle Bitwise-operators in Java te implementeren voor gebruikersinvoer
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 }> Invoer
Enter first number: 4 Enter second number: 8>
Uitvoer
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>
Uitleg
Dit programma vraagt de gebruiker om twee cijfers in te voeren, num1 en num2. Vervolgens voert het de volgende bitsgewijze bewerkingen uit met behulp van de operatoren &, |, ^, ~, <> en>>>:
Bitsgewijs EN
Bitsgewijze OF
Bitsgewijze XOR
Bitwijs NIET
Bitsgewijze linksverschuiving
Bitsgewijze rechtsverschuiving
Bitwise Zero Fill Right Shift
Voordelen
De voordelen van het gebruik van Bitwise Operators in Java zijn:
panda's spil
- Snelheid: Bitsgewijze bewerkingen zijn veel sneller dan rekenkundige bewerkingen, omdat ze rechtstreeks op binaire representaties van getallen werken.
- Ruimteoptimalisatie: Bitsgewijze bewerkingen kunnen worden gebruikt om meerdere waarden in één variabele op te slaan, wat handig kan zijn bij het werken met beperkt geheugen.
- Bit-manipulatie: Bitsgewijze operatoren zorgen voor nauwkeurige controle over individuele bits van een getal, wat handig kan zijn in verschillende toepassingen zoals cryptografie, foutdetectie en compressie.
- Codevereenvoudiging : Bitsgewijze bewerkingen kunnen de code vereenvoudigen door het aantal voorwaardelijke instructies en lussen te verminderen dat nodig is om bepaalde taken uit te voeren.
Samenvattend zijn Bitwise Operators een belangrijk hulpmiddel voor het optimaliseren van de prestaties, het verbeteren van de leesbaarheid van code en het verminderen van de codecomplexiteit in Java-applicaties.