Вопрос

Как я могу подражать 32-битными целыми числами без каких-либо внешних зависимостей в JavaScript?Хитрости с генеракодицетагкодом или генеракодицетагкодом не работают (для умножения, они, кажется, работают на добавление / вычитании), и удваивает точность во время умножения.

Например, попробуйте умножить 2654435769 * 340573321 (мод 2 ^ 32).Результат должен быть 1.

Этот ответ имеет умножение.Как насчет добавления / вычитания / разделения?

Вот ссылка к Wolfram Alpha, представляя уравнение выше.

Это было полезно?

Решение

32-битный unsigned int подходит в javascript's 64-битный поплавок -- Не должно быть потери точности при выполнении добавления, вычитания или разделения.Просто маска с 0xffffffff, чтобы остаться в 32-битном целом.Умножение выходит за рамки того, что подходит, но у вас уже есть решение для этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top