Как хранятся числа в памяти компьютера
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 %