logo

Bitové operátory v Javě


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ů:

  1. Aritmetické operátory
  2. Unární operátoři
  3. Operátor přiřazení
  4. Relační operátoři
  5. Logické operátory
  6. Ternární operátor
  7. Bitové operátory
  8. 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)>

Poznámka: Kompilátor poskytne dvojkový doplněk tohoto čísla, tj. dvojkový doplněk 10 bude -6.

Jáva
// 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:

  1. Podepsaný operátor řazení vpravo (>>)
  2. Nepodepsaný operátor posunu vpravo (>>>)
  3. Operátor levé směny (<<)
  4. 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__
  1. Rychlost: Bitové operace jsou mnohem rychlejší než aritmetické operace, protože operují přímo s binárními reprezentacemi čísel.
  2. 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í.
  3. 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.
  4. 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.