Vorzeichenlose 32 Bit Ganzzahlen in Javascript

9

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.

    
user1367401 28.07.2012, 18:28
quelle

1 Antwort

3

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.

    
ephemient 28.07.2012, 21:45
quelle