Wie kann ich ungeschützte 32bit-Ganzzahlen ohne externe Abhängigkeiten in Javascript emulieren? Tricks mit x >>> 0
oder x | 0
funktionieren nicht (bei der Multiplikation scheinen sie für die Addition / Subtraktion zu arbeiten), und Doppelungen verlieren ihre Präzision während der Multiplikation.
Versuchen Sie zum Beispiel, 2654435769 * 340573321 (mod 2 ^ 32) zu multiplizieren. Das Ergebnis sollte 1 sein.
Diese Antwort hat eine Multiplikation. Was ist mit Addition / Subtraktion / Division?
Hier ist ein Link zu Wolfram alpha, Präsentation der obigen Gleichung.
Ein 32-Bit-Zeichen ohne Vorzeichen passt in Javascript 64-Bit-Gleitkommazahl - es sollte keine geben Genauigkeitsverlust bei Addition, Subtraktion oder Division. Maskiere einfach mit 0xffffffff
, um innerhalb einer 32-Bit-Ganzzahl zu bleiben. Multiplikation geht über das hinaus, was passt, aber Sie haben bereits eine Lösung dafür.
Tags und Links javascript integer unsigned-integer