logo

Порозрядні оператори в Java


Оператори є основним будівельним блоком будь-якої мови програмування. Java також надає багато типів операторів, які можна використовувати відповідно до потреби виконувати різні обчислення та функції, будь то логічні, арифметичні, реляційні тощо. Вони класифікуються на основі функціональності, яку вони надають. Ось кілька типів:

  1. Арифметичні оператори
  2. Унарні оператори
  3. Оператор присвоєння
  4. Оператори відношення
  5. Логічні оператори
  6. Тернарний оператор
  7. Порозрядні оператори
  8. Оператори зсуву

У цій статті пояснюється все, що потрібно знати про побітові оператори.



Порозрядні оператори

Порозрядні оператори використовуються для виконання маніпуляцій з окремими бітами числа. Їх можна використовувати з будь-яким інтегральним типом (char, short, int тощо). Вони використовуються під час виконання операцій оновлення та запитів бінарних індексованих дерев.

таблиця реакцій

Тепер давайте розглянемо кожен з порозрядних операторів у Java:

1. Побітове АБО (|)



Цей оператор є двійковим і позначається «|». Він повертає побітово АБО вхідних значень, тобто якщо один із бітів дорівнює 1, він дає 1, інакше показує 0.

приклад:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise OR Operation of 5 and 7  0101 | 0111  ________  0111 = 7 (In decimal)>

2. Побітове І (&)



Цей оператор є двійковим і позначається «&». Він повертає побітово І вхідних значень, тобто якщо обидва біти дорівнюють 1, він дає 1, інакше показує 0.

приклад:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise AND Operation of 5 and 7  0101 & 0111  ________  0101 = 5 (In decimal)>

3. Побітове XOR (^)

Цей оператор є двійковим і позначається «^». Він повертає побітове XOR вхідних значень, тобто, якщо відповідні біти відрізняються, він дає 1, інакше показує 0.

Linux перейменувати каталог

приклад:

a = 5 = 0101 (In Binary) b = 7 = 0111 (In Binary)  Bitwise XOR Operation of 5 and 7  0101 ^ 0111  ________  0010 = 2 (In decimal)>

4. Порозрядне доповнення (~)

Цей оператор є унарним оператором, позначається «~». Він повертає представлення вхідного значення в доповненні до одиниці, тобто з усіма бітами інвертованими, що означає, що кожні 0 до 1 і кожні 1 до 0.

приклад:

a = 5 = 0101 (In Binary)  Bitwise Complement Operation of 5  ~ 0101  ________  1010 = 10 (In decimal)>

Примітка: Компілятор дасть доповнення 2 до цього числа, тобто доповнення 2 до 10 буде -6.

Java
// 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);   }>

Вихід
a&b = 5 a|b = 7 a^b = 2 ~a = -6 a= 5>

Допоміжний простір: O(1)

Часова складність: 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]);  } }>

Вихід
 a= 0011 b= 0110 a|b= 0111 a&b= 0010 a^b= 0101 ~a & b|a&~b= 0101 ~a= 1100>

Оператори зсуву бітів (оператори зсуву)

Оператори зсуву використовуються для зміщення бітів числа вліво або вправо, тим самим множачи або ділячи число на два відповідно. Їх можна використовувати, коли нам потрібно помножити або поділити число на два.

Синтаксис:

 number   shift_op   number_of_places_to_shift;>

Типи операторів зсуву:

Оператори зсуву також поділяються на 4 типи. Це:

  1. Знаковий оператор правого зсуву (>>)
  2. Беззнаковий оператор правого зсуву (>>>)
  3. Оператор зсуву вліво (<<)
  4. Беззнаковий оператор зсуву вліво (<<<)

Примітка: Додаткову інформацію про оператори зсуву в Java див Оператор зсуву в Java .

ціле число для подвоєння java

програма для реалізації всіх побітових операторів у java для введення користувача

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  }>

Введення

Enter first number: 4 Enter second number: 8>

Вихід

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>

Пояснення

Ця програма пропонує користувачеві ввести два числа, num1 і num2. Потім він виконує такі побітові операції за допомогою операторів &, |, ^, ~, <> і>>>:

Побітове І
Порозрядне АБО
Побітове XOR
Побітово НІ
Порозрядний зсув вліво
Порозрядний зсув вправо
Порозрядне зсув нуля вправо

Переваги

Переваги використання побітових операторів у Java:

  1. швидкість: Порозрядні операції набагато швидші за арифметичні операції, оскільки вони працюють безпосередньо з двійковими представленнями чисел.
  2. Оптимізація простору: Побітові операції можна використовувати для зберігання кількох значень в одній змінній, що може бути корисним при роботі з обмеженою пам’яттю.
  3. Маніпуляція бітами: Побітові оператори дозволяють точно контролювати окремі біти числа, що може бути корисним у різних програмах, таких як криптографія, виявлення помилок і стиснення.
  4. Спрощення коду : Побітові операції можуть спростити код, зменшивши кількість умовних операторів і циклів, необхідних для виконання певних завдань.

Таким чином, побітові оператори є важливим інструментом для оптимізації продуктивності, покращення читабельності коду та зменшення складності коду в програмах Java.