Сообщение от voraa
|
1673357377000
В 2 это 00000001 10000101 10011011 11011111 00111101 11101000
В 16 это 01 85 9B DF 3D E8
Ну никак не 4 байта, а 6
Такие числа представляются как double64
В js целые числа меньшие 2**53 - 1 хранятся как денормализованные double64
В windows есть калькулятор. Проверьте в режиме "программист"
|
Да, видимо из-за сдвига >>> 0 уменьшилось итоговое количество битов (Зачем его там тогда вообще применяли??). Число 1673357377000 (в миллисекундах) в двоичной системе имеет значение 11000010110011011110111110011110111101000 (41 бит).
Получается, если хранить в секундах — 1673357377, то это поместится в 4 байта 1100011101111010110100001000001 (31 бит).
А как тогда сохранить в файл большое беззнаковое целое число?
const bigInt = 340282366920938463463374607431768211455n;
console.log(bigInt.toString(2))