Побитовые операции

Как хранятся числа в памяти компьютера

38910 = 1100001012

int i = 389;
String intBits = Integer.toBinaryString(i);
System.out.println("Разряды числа: " + intBits);
Результат работы программы:
Разряды числа: 110000101

Побитовые логические операции

int neg = ~a; // Операция отрицание
int and = a & b; // "И"
int or = a | b; // "ИЛИ"
int xor = a ^ b; // Исключающее "ИЛИ" (XOR)
int arithmeticShiftRight = a >> b; // Арифметический сдвиг вправо, младшие биты теряются, а освободившиеся позиции заполняются знаковым битом
int logicalShiftRight = a >>> b; // Логический сдвиг вправо, освободившиеся позиции заполняются нулями
int shiftLeft = a << b; // Сдвиг влево, старшие биты теряется, младшие заполняется нулями

В операция сдвига правым операндом может быть любое число, но Java возьмет остаток от деления этого числа на размер целочисленного типа в битах.
int arithmeticShiftRight = a >> b;

Для типа integer: b %

Оцените автора
Kosenkov.Pro
Добавить комментарий