Operátori tvoria základný stavebný kameň každého programovacieho jazyka. Aj Java poskytuje mnoho typov operátorov, ktoré možno použiť podľa potreby vykonávať rôzne výpočty a funkcie, či už logické, aritmetické, relačné atď. Sú klasifikované na základe funkčnosti, ktorú poskytujú. Tu je niekoľko typov:
- Aritmetické operátory
- Unární operátori
- Operátor pridelenia
- Vzťahoví operátori
- Logické operátory
- Ternárny operátor
- Bitové operátory
- Zmenoví operátori
Tento článok vysvetľuje všetko, čo potrebujete vedieť o Bitwise Operatoroch.
mapa v jave
Bitové operátory
Bitové operátory sa používajú na vykonávanie manipulácie s jednotlivými bitmi čísla. Môžu byť použité s akýmkoľvek integrálnym typom (char, short, int, atď.). Používajú sa pri vykonávaní operácií aktualizácie a dotazovania binárnych indexovaných stromov.
Teraz sa pozrime na každý z bitových operátorov v jazyku Java:
1. Bitové ALEBO (|)
Tento operátor je binárny operátor označený ako „|“. Vracia bit po bite ALEBO vstupných hodnôt, t.j. ak je niektorý z bitov 1, dáva 1, inak ukazuje 0.
Príklad:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise OR Operation of 5 and 7 0101 | 0111 ________ 0111 = 7 (In decimal)>
2. Bitové A (&)
Tento operátor je binárny operátor označený „&.“ Vracia vstupné hodnoty bit po bite AND, t. j. ak sú oba bity 1, dáva 1, inak ukazuje 0.
Príklad:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise AND Operation of 5 and 7 0101 & 0111 ________ 0101 = 5 (In decimal)>
3. Bitové XOR (^)
Tento operátor je binárny operátor označený „^.“ Vracia bit po bite XOR vstupných hodnôt, t. j. ak sa zodpovedajúce bity líšia, dáva 1, inak ukazuje 0.
Príklad:
a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary) Bitwise XOR Operation of 5 and 7 0101 ^ 0111 ________ 0010 = 2 (In decimal)>
4. Bitový doplnok (~)
Tento operátor je unárny operátor, ktorý sa označuje ako „~.“ Vracia reprezentáciu vstupnej hodnoty s doplnkom, t. j. so všetkými invertovanými bitmi, čo znamená, že robí každú 0 až 1 a každú 1 až 0.
Príklad:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
JavaPoznámka: Kompilátor poskytne dvojkový doplnok tohto čísla, t.j. dvojkový doplnok 10 bude -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); }> Výkon
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Pomocný priestor:O(1)
Časová zložitosť: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]); } }> Výkon
a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>
Operátory bitového posunu (operátory posunu)
Operátory posunu sa používajú na posunutie bitov čísla doľava alebo doprava, čím sa číslo vynásobí alebo vydelí dvoma. Môžu sa použiť, keď musíme číslo vynásobiť alebo vydeliť dvoma.
Syntax:
number shift_op number_of_places_to_shift;>
Typy zmenových operátorov:
Zmenoví operátori sa ďalej delia na 4 typy. Toto sú:
- Operátor posunu vpravo (>>)
- Nepopísaný operátor posunu vpravo (>>>)
- Operátor zmeny vľavo (<<)
- Bez znamienka Operátor ľavého posunu (<<<)
Poznámka: Ďalšie podrobnosti o operátoroch posunu v jazyku Java nájdete na stránke Operátor posunu v jazyku Java .
normálne formy
program na implementáciu všetkých bitových operátorov v jazyku Java pre vstup používateľa
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 }> Vstup
Enter first number: 4 Enter second number: 8>
Výkon
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>
Vysvetlenie
Tento program vyzve používateľa, aby zadal dve čísla, num1 a num2. Potom vykoná nasledujúce bitové operácie pomocou operátorov &, |, ^, ~, <> a>>>:
Bitové AND
Bitové ALEBO
Bitový XOR
Bitovo NIE
Bitový posun doľava
Bitový posun doprava
Bitový nulový výplň pravý Shift
Výhody
Výhody používania bitových operátorov v jazyku Java sú:
- Rýchlosť: Bitové operácie sú oveľa rýchlejšie ako aritmetické operácie, pretože pracujú priamo s binárnymi reprezentáciami čísel.
- Optimalizácia priestoru: Bitové operácie možno použiť na uloženie viacerých hodnôt do jednej premennej, čo môže byť užitočné pri práci s obmedzenou pamäťou.
- Bitová manipulácia: Bitové operátory umožňujú presnú kontrolu nad jednotlivými bitmi čísla, čo môže byť užitočné v rôznych aplikáciách, ako je kryptografia, detekcia chýb a kompresia.
- Zjednodušenie kódu : Bitové operácie môžu zjednodušiť kód znížením počtu podmienených príkazov a slučiek potrebných na vykonanie určitých úloh.
Stručne povedané, Bitwise Operators sú dôležitým nástrojom na optimalizáciu výkonu, zlepšenie čitateľnosti kódu a zníženie zložitosti kódu v aplikáciách Java.