Operátoři tvoří základní stavební kámen každého programovacího jazyka. Také Java poskytuje mnoho typů operátorů, které lze použít podle potřeby provádět různé výpočty a funkce, ať už logické, aritmetické, relační atd. Jsou klasifikovány na základě funkčnosti, kterou poskytují. Zde je několik typů:
- Aritmetické operátory
- Unární operátoři
- Operátor přiřazení
- Relační operátoři
- Logické operátory
- Ternární operátor
- Bitové operátory
- Operátoři směn
Tento článek vysvětluje vše, co potřebujete vědět o Bitwise Operators.
Bitové operátory
Bitové operátory se používají k provádění manipulace s jednotlivými bity čísla. Mohou být použity s jakýmkoli integrálním typem (char, short, int atd.). Používají se při provádění aktualizací a dotazovacích operací binárních indexovaných stromů.
Nyní se podívejme na každý z bitových operátorů v Javě:
nudný průměr
1. Bitové NEBO (|)
Tento operátor je binární operátor označovaný „|“. Vrací bit po bitu NEBO vstupních hodnot, tj. pokud je některý z bitů 1, dává 1, jinak ukazuje 0.
Pří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é AND (&)
konstruktor pythonu
Tento operátor je binární operátor, označený ‚&.‘ Vrací vstupní hodnoty bit po bitu AND, tj. pokud jsou oba bity 1, dává 1, jinak ukazuje 0.
Pří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ární operátor označený „^.“ Vrací bit po bitu XOR vstupních hodnot, tj. pokud se odpovídající bity liší, dává 1, jinak ukazuje 0.
Příklad:
nejhezčí úsměv na světě
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ý doplněk (~)
Tento operátor je unární operátor, označený „~.“ Vrací reprezentaci vstupní hodnoty jako doplněk jedničky, tj. se všemi invertovanými bity, což znamená, že dělá každou 0 až 1 a každou 1 až 0.
Příklad:
a = 5 = 0101 (In Binary) Bitwise Complement Operation of 5 ~ 0101 ________ 1010 = 10 (In decimal)>
JávaPoznámka: Kompilátor poskytne dvojkový doplněk tohoto čísla, tj. dvojkový doplněk 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ýstup
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>
Pomocný prostor:O(1)
Časová složitost:O(1)
Jáva // 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ýstup
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 se používají k posunutí bitů čísla doleva nebo doprava, čímž se číslo vynásobí nebo vydělí dvěma. Lze je použít, když musíme číslo vynásobit nebo vydělit dvěma.
Syntax:
strojové učení a typy
number shift_op number_of_places_to_shift;>
Typy směnových operátorů:
Směnoví operátoři se dále dělí na 4 typy. Tyto jsou:
- Podepsaný operátor řazení vpravo (>>)
- Nepodepsaný operátor posunu vpravo (>>>)
- Operátor levé směny (<<)
- Bez znaménka Operátor levé směny (<<<)
Poznámka: Další podrobnosti o Shift Operators v Javě viz Shift operátor v Javě .
program pro implementaci všech bitových operátorů v jazyce Java pro vstup uživatele
Jáva 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ýstup
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>
Vysvětlení
Tento program vyzve uživatele k zadání dvou čísel, num1 a num2. Poté provede následující bitové operace pomocí operátorů &, |, ^, ~, <> a>>>:
Bitové AND
Bitově NEBO
Bitový XOR
Bitově NE
Bitový levý Shift
Bitový pravý Shift
Bitový posun nulové výplně vpravo
Výhody
Výhody použití Bitwise Operators v Javě jsou:
python __dict__
- Rychlost: Bitové operace jsou mnohem rychlejší než aritmetické operace, protože operují přímo s binárními reprezentacemi čísel.
- Optimalizace prostoru: Bitové operace lze použít k uložení více hodnot do jedné proměnné, což může být užitečné při práci s omezenou pamětí.
- Manipulace s bity: Bitové operátory umožňují přesnou kontrolu nad jednotlivými bity čísla, což může být užitečné v různých aplikacích, jako je kryptografie, detekce chyb a komprese.
- Zjednodušení kódu : Bitové operace mohou zjednodušit kód snížením počtu podmíněných příkazů a smyček potřebných k provedení určitých úkolů.
Stručně řečeno, Bitwise Operators jsou důležitým nástrojem pro optimalizaci výkonu, zlepšení čitelnosti kódu a snížení složitosti kódu v aplikacích Java.