Operaterji predstavljajo osnovni gradnik katerega koli programskega jezika. Tudi Java ponuja številne vrste operatorjev, ki jih je mogoče uporabiti glede na potrebo po izvajanju različnih izračunov in funkcij, bodisi logičnih, aritmetičnih, relacijskih itd. Razvrščeni so glede na funkcionalnost, ki jo zagotavljajo. Tukaj je nekaj vrst:
- Aritmetični operatorji
- Unarni operatorji
- Operater dodelitve
- Relacijski operaterji
- Logični operatorji
- Ternarni operater
- Bitni operaterji
- Operatorji premika
Ta članek pojasnjuje vse, kar morate vedeti o bitnih operaterjih.
Bitni operaterji
Bitni operaterji se uporabljajo za izvajanje manipulacije posameznih bitov števila. Uporabljajo se lahko s katerim koli integralnim tipom (char, short, int itd.). Uporabljajo se pri izvajanju operacij posodabljanja in poizvedovanja binarnih indeksiranih dreves.
Zdaj pa si poglejmo vsakega od bitnih operaterjev v Javi:
1. Bitni ALI (|)
Ta operator je binarni operator, označen z ‘|’. Vrne bit za bitom ALI vhodnih vrednosti, tj. če je kateri koli od bitov 1, daje 1, drugače pa prikazuje 0.
primer:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise OR Operation of 5 and 7 0101 | 0111 ________ 0111 = 7 (In decimal)>
2. Bitno IN (&)
Ta operator je binarni operator, označen z '&'. Vrne bit za bit IN vhodnih vrednosti, tj. če sta oba bita 1, daje 1, drugače pa prikazuje 0.
primer:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise AND Operation of 5 and 7 0101 & 0111 ________ 0101 = 5 (In decimal)>
3. Bitni XOR (^)
Ta operator je binarni operator, označen z ‘^’. Vrne bit za bitnim XOR vhodnih vrednosti, tj., če so ustrezni biti različni, daje 1, drugače pa prikazuje 0.
primer:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise XOR Operation of 5 and 7 0101 ^ 0111 ________ 0010 = 2 (In decimal)>
4. Bitni komplement (~)
Ta operator je unarni operator, označen z '~'. Vrne predstavitev komplementa enice vhodne vrednosti, tj. z vsemi obrnjenimi biti, kar pomeni, da naredi vsakih 0 proti 1 in vsakih 1 proti 0.
primer:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
JavaOpomba: Prevajalnik bo dal komplement 2 tega števila, tj. komplement 2 za 10 bo -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); }> Izhod
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Pomožni prostor: O(1)
Časovna zahtevnost: O(1)
format nizaJava
// 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]); } }> Izhod
a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>
Operatorji bitnega premika (operatorji premika)
Operatorji premika se uporabljajo za premik bitov števila v levo ali desno, s čimer se število pomnoži ali deli z dve. Uporabimo jih lahko, ko moramo število pomnožiti ali deliti z dve.
Sintaksa:
number shift_op number_of_places_to_shift;>
Vrste operaterjev premika:
Operatorji premika so nadalje razdeljeni na 4 vrste. To so:
- Podpisani operator desnega premika (>>)
- Nepodpisani operator desnega premika (>>>)
- Levi operater premika (<<)
- Nepodpisani levi operator premika (<<<)
Opomba: Za več podrobnosti o operaterjih premika v Javi glejte Operator premika v Javi .
program za implementacijo vseh bitnih operatorjev v Javi za uporabniški vnos
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 }> Vnos
Enter first number: 4 Enter second number: 8>
Izhod
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>
Pojasnilo
Ta program pozove uporabnika, da vnese dve številki, num1 in num2. Nato izvede naslednje bitne operacije z uporabo operatorjev &, |, ^, ~, <> in>>>:
Bitno IN
Bitni ALI
Bitni XOR
Bitno NE
Bitni premik v levo
Bitni desni premik
Bitno ničelno polnjenje v desno
Prednosti
Prednosti uporabe bitnih operaterjev v Javi so:
- Hitrost: Bitne operacije so veliko hitrejše od aritmetičnih operacij, saj delujejo neposredno na binarnih predstavitvah števil.
- Optimizacija prostora: Bitne operacije je mogoče uporabiti za shranjevanje več vrednosti v eno spremenljivko, kar je lahko koristno pri delu z omejenim pomnilnikom.
- Bitna manipulacija: Bitni operaterji omogočajo natančen nadzor nad posameznimi biti števila, kar je lahko uporabno v različnih aplikacijah, kot so kriptografija, odkrivanje napak in stiskanje.
- Poenostavitev kode : Bitne operacije lahko poenostavijo kodo z zmanjšanjem števila pogojnih stavkov in zank, potrebnih za izvajanje določenih nalog.
Če povzamemo, bitni operaterji so pomembno orodje za optimizacijo zmogljivosti, izboljšanje berljivosti kode in zmanjšanje zapletenosti kode v aplikacijah Java.