161просмотров
96.4%от подписчиков
18 января 2026 г.
📷 ФотоScore: 177
Оператор & - переполняющее умножение (overflowing multiplication). &:
• игнорирует переполнение;
• выполняет умножение по модулю диапазона типа;
• не вызывает runtime error.
___ Для Int8 диапазон: -128...127 Общая формула: result = (a b) mod 2^N
mod - остаток от деления (%), но не может быть отрицательным. Числа, выходящие за пределы, оборачиваются по модулю 256 (2^8). Наглядно 0000_0000 - 0
0000_0001 - 1
...
0111_1111 - 127
1000_0000 - -128
1000_0001 - -127
...
1111_1111 - -1
опять 0000_0000 - 0 32 4 = 128
128 не помещается в Int8.
Битовый паттерн зарезервирован под -128.