Ответ 1
Поскольку JavaScript использует не более 32-битных целых чисел, но имейте в виду, что каждый номер является своего рода плавающей точкой на этом языке.
Если вы хотите усечь их до 32-значного значения без знака:
(3391700000|0) >>> 0
Почему положительное число работает с поразрядным или 0 не всегда положительным в Javascript
Например:
3391700000|0
-903267296
4260919000|0
-34048296
2884900000|0
-1410067296
Я использую chrome 64-bit в Linux
относящийся к: qaru.site/info/11950/...
Поскольку JavaScript использует не более 32-битных целых чисел, но имейте в виду, что каждый номер является своего рода плавающей точкой на этом языке.
Если вы хотите усечь их до 32-значного значения без знака:
(3391700000|0) >>> 0
В JavaScript операнды побитовых операторов преобразуются в подписанные 32-разрядные целые числа в формате 2-х дополнений. Вот почему вы получили некоторую потерю данных, а усеченные значения иногда отрицательны из-за подписанного представления двух дополнений.
Вы можете ссылаться на Почему побитовый сдвиг с 0 в JavaScript дает странные результаты в некоторых случаях, который был задан мной некоторое время назад, и некоторые ответы указывали на возможное выдача с побитовыми операторами, где ваши операнды значительно превосходят 32-битные целые числа.