Как инвертировать байты? 100 => 011
Ожидание:
let inverted_number = ~4; // 3 Реальность: let inverted_number = ~4; alert(inverted_number); //-5 Как привести реальность к ожиданиям? |
Цитата:
https://learn.javascript.ru/bitwise-operators |
00000000000000000000000000000100 инвертируется в 11111111111111111111111111111011 |
Цитата:
let val = 4 val = val.toString(2).replace(/1|0/g, _ => !+_ ? 1 : 0 ) alert(val) |
Цитата:
function inv(n) {
let p = 1;
while (p <= n) p *= 2;
return ~n & (p - 1);
}
alert(inv(4));
работает только для натуральных чисел |
| Часовой пояс GMT +3, время: 10:10. |