Что такое побитовый оператор в Java? и его классификация (с примерами)

Опубликовано: 2021-05-20

Java является одним из наиболее распространенных языков программирования в Индии, на долю которого приходится около 20% рынка . Побитовый оператор в Java — это символ/нотация, который выполняет указанную операцию над отдельными битами, взятыми по одному. Он используется для управления отдельными битами двоичного числа и может использоваться с различными типами целых чисел — char, int, long, short, byte.

Побитовые операторы в Java можно разделить на 7 типов:

Побитовый оператор в Java Символ Описание
Побитовое И | Сохраняет бит в результате тогда и только тогда, когда он присутствует в обоих операндах.
Побитовое ИЛИ & Сохраняет бит, если он существует в любом из двух операндов.
Побитовое исключающее ИЛИ ^ Сохраняет бит, если он присутствует только в одном операнде, но не в обоих.
Побитовое дополнение ~ Также известен как дополнение до 1. Просто поменяйте местами биты операнда.
Побитовый Shift влево << Биты в левом операнде сдвигаются влево на количество разрядов, указанное в правом операнде.
ПОДПИСАН ПРАВЫЙ SHIFT >> Биты в левом операнде сдвигаются вправо на количество разрядов, указанное в правом операнде.
БЕЗЗНАКОВЫЙ ПРАВЫЙ SHIFT >>> Точно так же, как SIGNED RIGHT SHIFT плюс сдвинутые биты заполняются нулями.

Давайте теперь подробно рассмотрим каждый побитовый оператор в Java:

Оглавление

1. ИЛИ (А | Б)

Таблица истинности

А Б Выход
0 0 0
0 1 1
1 0 1
1 1 1

Пример

А = 1011 1110

Б = 0011 0101

А | В = 1011 1111

Синтаксис

основной класс {

public static void main(String[] args) {

int операнд1 = 190, операнд2 = 53, вывод;

// побитовое ИЛИ между 190 и 53

вывод = операнд1 | операнд2;

Система.out.println(выход); // программа печатает 191

}

}

2. И (А и Б)

Таблица истинности

А Б Выход
0 0 0
0 1 0
1 0 0
1 1 1

Пример

А = 1011 1110

Б = 0011 0101

А и В = 0011 0100

Синтаксис

основной класс {

public static void main(String[] args) {

int операнд1 = 190, операнд2 = 53, вывод;

// побитовое ИЛИ между 190 и 53

вывод = операнд1 | операнд2;

Система.out.println(выход); // программа печатает 52

}

}

  1. ВКЛЮЧИТЕЛЬНОЕ ИЛИ/ИСКЛЮЧАЮЩЕЕ ИЛИ (A ^ B)

Таблица истинности

А Б Выход
0 0 0
0 1 1
1 0 1
1 1 0

Пример

А = 1011 1110

Б = 0011 0101

А ^ В = 1000 0011

Синтаксис

основной класс {

public static void main(String[] args) {

int операнд1 = 190, операнд2 = 53, вывод;

// побитовое ИЛИ между 190 и 53

вывод = операнд1 | операнд2;

Система.out.println(выход); // программа печатает 131

}

}

3. ДОПОЛНЕНИЕ (А ~ В)

В десятичном выражении побитовое дополнение числа A равно – (A+1). Однако в двоичном домене нам нужно сначала вычислить его дополнение до 1, а затем преобразовать его в дополнение до 2, чтобы получить желаемый результат.

Дополнение до 1 — просто поменяйте местами биты. Например:

А = 1011 1110 (190)

Дополнение до 1 для A = 0100 0001

Дополнение до 2 для A = Дополнение до 1 для A + 1 = 0100 0010

Синтаксис

основной класс {

public static void main(String[] args) {

int операнд4 = 190, вывод;

// побитовое дополнение 190

вывод = ~операнд4;

Система.out.println(выход); // печатает -191

}

}

  1. СДВИГ ВЛЕВО (А << 1)

Предположим, А = 1011 1110

А << 1 = ?

Этот побитовый оператор в Java сдвигает все биты влево на 1, т. е. на выходе получается 0111 1100. Самый левый бит (старший значащий бит или MSB) отбрасывается, а к самому правому пустому месту добавляется 0 ( младший значащий бит или LSB). Это делается для каждого свободного места справа.

Синтаксис

основной класс {

public static void main(String[] args) {

целочисленный операнд = 3; // бинарный — 11

// 1-битная операция сдвига влево

int вывод = операнд << 1;

Система.out.println(выход); // печатает 2

}

}

4. ПОДПИСАН ПРАВЫЙ SHIFT (A >> 2)

Этот побитовый оператор в Java сдвигает битовый шаблон вправо на указанное количество позиций. LSB отбрасываются, а MSB заполняются знаковым битом. 0 представляет положительный знак, а 1 представляет отрицательный знак.

Синтаксис

основной класс {

public static void main(String[] args) {

целочисленный операнд 1 = 2;

целочисленный операнд2 = -2;

// 2-битный сдвиг вправо со знаком

System.out.println(операнд1 >> 2); // печатает 1

System.out.println(операнд2 >> 2); // печатает -1

}

}

5. БЕЗЗНАКОВЫЙ ПРАВЫЙ SHIFT (A >>>2)

Операция здесь в точности аналогична SIGNED RIGHT SHIFT, за исключением того, что свободные крайние левые биты заменяются на 0 вместо битов знака.

Синтаксис

основной класс {

public static void main(String[] args) {

целочисленный операнд = 240; // двоичное число — 1111 0000

// 2-битный беззнаковый сдвиг вправо

System.out.println(операнд >>> 2); // печатает 60

}

}

Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Хотите освоить Java и сделать на этом карьеру? Ознакомьтесь с разделом « Программное обеспечение и технологии » upGrad . Зарегистрируйтесь на 13-месячную программу Executive PG в рамках Full-Stack Development и примите участие в реальных проектах. Работая в известной организации IIIT Bangalore, вы получаете возможность изучить 16 языков и инструментов программирования, а также гарантированно пройти 3 собеседования при приеме на работу.

Что такое побитовые операторы?

Побитовый оператор работает с каждым битом операнда и возвращает результат в виде 1 и 0. Большинство побитовых операторов используются для создания различных масок, которые можно использовать для создания битовых полей, изменения размера типа данных и выравнивания типа данных. Побитовые операторы используются для выполнения побитовых операций над двоичным числом. Он используется для повышения эффективности операций на битовом уровне. Мы не можем использовать побитовый оператор для переменных нецелочисленных типов данных.

Какие типы побитовых операторов существуют в Java?

В языке Java, помимо арифметических операторов, также используются побитовые операторы. Хотя существует всего несколько побитовых операторов, они могут быть чрезвычайно полезными. В Java есть шесть операторов. Это: побитовое И, побитовое ИЛИ, побитовое исключающее ИЛИ, побитовый сдвиг влево, побитовый сдвиг вправо и дополнение до единиц. Эти операторы можно применять к целочисленным типам byte, short, int, long и char.

Каковы особенности языка программирования Java?

Java — это объектно-ориентированный язык программирования общего назначения. Приложения Java обычно компилируются в байт-код, который затем выполняется на виртуальной машине Java. Java предназначен для работы на различных платформах. Он также предназначен для использования в распределенной вычислительной среде. Программа, написанная на языке программирования Java, называется приложением Java или средой приложения Java. Язык программирования Java — мощный и гибкий язык. Java-приложения часто крупнее и сложнее обычного веб-приложения. Язык программирования Java является языком общего назначения. Его можно использовать для создания приложений для любых целей. Такие функции, как многопоточность, работа в сети, безопасность и постоянство, делают Java подходящей для широкого спектра применений.