Frage

Wie kann ich 32-Bit-Ganzzahlen ohne Vorzeichen ohne externe Abhängigkeiten in Javascript emulieren?Tricks mit x >>> 0 oder x | 0 funktionieren nicht (bei der Multiplikation scheinen sie bei der Addition/Subtraktion zu funktionieren) und Doppelungen verlieren bei der Multiplikation an Präzision.

Versuchen Sie beispielsweise, 2654435769 * 340573321 (mod 2^32) zu multiplizieren.Das Ergebnis sollte 1 sein.

Diese Antwort hat Multiplikation.Was ist mit Addition/Subtraktion/Division?

Hier ist ein Link zu Wolfram-Alpha, wobei die obige Gleichung dargestellt wird.

War es hilfreich?

Lösung

Ein 32-Bit-Int ohne Vorzeichen passt in Javascript 64-Bit-Float - Bei der Addition, Subtraktion oder Division darf kein Präzisionsverlust auftreten.Einfach maskieren 0xffffffff um innerhalb einer 32-Bit-Ganzzahl zu bleiben.Die Multiplikation geht über das hinaus, was passt, aber dafür haben Sie bereits eine Lösung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top