Question

Comment puis-je imiter 32bit unsiged entiers sans dépendances externes en Javascript?Astuces avec x >>> 0 ou x | 0 ne fonctionne pas (pour la multiplication, ils semblent travailler pour l'addition / soustraction), et en double une perte de précision lors de la multiplication.

Par exemple, essayez de multiplier 2654435769 * 340573321 (mod 2^32).Le résultat devrait être 1.

Cette réponse a la multiplication.Qu'en addition / soustraction / division?

Voici un lien pour wolfram alpha, la présentation de l'équation ci-dessus.

Était-ce utile?

La solution

Un 32-bit unsigned int s'inscrit dans du Javascript 64-bit à virgule flottante -- il ne devrait y avoir aucune perte de précision lors de la réalisation de l'addition, la soustraction ou une division.Juste avec un masque 0xffffffff pour rester à l'intérieur d'un entier de 32 bits.La Multiplication va au-delà de ce qui convient, mais vous avez déjà une solution pour que.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top