Java

Как понять побитовые операции? bitwise

Например, почему int a=5 в битах будет 0101? Если два нуля и две единицы не дают в результате пять?
Почему int=7 будет 0111, тут вообще не логично, почему один ноль и три тройки?
Как вообще рассчитать любое число в битах?
Armani *******
Armani *******
5 946
ты пошутил?

5 = (1*1)+(2*0)+(4*1) = 1+4 = 5
Неизвестно Неизвестно
Неизвестно Неизвестно
59 288
Лучший ответ
Armani ******* а с числом 7 как?
тролли вышли на новый уровень?
Тед )) Вовсе нет. Просто вам кажется, будто известное вам известно всем.
Как устроено десятичное число:
8352 = 8 • 1000 + 3 • 100 + 5 • 10 + 2 • 1
Каждая цифра имеет номинал, равный степени десятки.
Номиналы справа налево: 1, 10, 10² = 100, 10³ = 1000…

Как устроено двоичное число:
11001 = 1 • 16 + 1 • 8 + 0 • 4 + 0 • 2 + 1 • 1 = 16 + 8 + 1 = 25
Каждая цифра имеет номинал, равный степени двойки.
Номиналы справа налево: 1, 2, 2² = 4, 2³ = 8…

Вы можете освоить двоичную систему счисления на моем тренажере, созданном по мотивам лекций CS50:
https://ortega-lab.ru/learn/byte.php
Каждый бит подобен лампочке, имеющей свой номинал.
Десятичное число равно сумме номиналов всех лампочек.
Ваша задача — включить биты таким образом, чтобы в итоге получить указанное десятичное число.
AA
Alik.j Angel_J
57 672
Почитай про перевод из двоичной системы счисления в десятичную и обратно, затем про побитовые AND, OR, XOR, NOT. Как выполнять побитовые операции: записываешь два двоичных числа одно под другим на бумажке, затем применяешь нужную операцию (например, AND) к верхнему и нижнему биту в каждом разряде, получаешь результат для каждой пары бит (верхнего и нижнего). Потом это все постепенно будешь делать в уме, не задумываясь. В двоичной системе считать не сложнее, чем в десятичной, просто непривычно.