Целочисленные битовые операторы
Для целых числовых типов данных — long, int, short, char и byte, определен дополнительный набор операторов, с помощью которых можно проверять и модифицировать состояние отдельных битов соответствующих значений. В таблице приведена сводка таких операторов. Операторы битовой арифметики работают с каждым битом как с самостоятельной величиной.
Оператор |
Результат |
Оператор |
Результат |
~ |
побитовое унарное отрицание (NOT) |
|
|
& |
побитовое И (AND) |
&= |
побитовое И (AND) с присваиванием |
| |
побитовое ИЛИ (OR) |
|= |
побитовое ИЛИ (OR) с присваиванием |
^ |
побитовое исключающее ИЛИ (XOR) |
^= |
побитовое исключающее ИЛИ (XOR) с присваиванием |
>> |
сдвиг вправо |
>> = |
сдвиг вправо с присваиванием |
>>> |
сдвиг вправо с заполнением нулями |
>>>= |
сдвиг вправо с заполнением нулями с присваиванием |
<< |
сдвиг влево |
<<= |
сдвиг влево с присваиванием |
Пример программы, манипулирующей с битами
В таблице, приведенной ниже, показано, как каждый из операторов битовой арифметики воздействует на возможные комбинации битов своих операндов. Приведенный после таблицы пример иллюстрирует использование этих операторов в программе на языке Java.
А |
В |
OR |
AND |
XOR |
NOT A |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
class Bitlogic {
public static void main(String args []) {
String binary[] = { "OOOO", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101",
"1110", "1111" };
int a = 3; // 0+2+1 или двоичное 0011