Question

J'ai un nombre de 128 bits stocké sous forme de 2 numéros 64 bits ( « Salut » et « Lo »). J'ai besoin que de le diviser par un nombre de 32 bits. Comment pourrais-je faire, en utilisant les opérations 64 bits natif du CPU?

(S'il vous plaît, notez que je ne ai pas besoin d'une bibliothèque de précision arbitraire. Juste besoin de savoir comment faire cette simple division en utilisant des opérations natives. Nous vous remercions).

Était-ce utile?

La solution

Si vous stockez la valeur (128 bits) en utilisant la plus grande représentation native possible votre architecture peut gérer (64 bits) vous aurez des problèmes de manipulation des résultats intermédiaires de la division (comme vous avez déjà trouvé :)).

Mais vous pouvez toujours utiliser une représentation plus petite taille. Qu'en est-quatre numéros de 32 bits? De cette façon, vous pouvez utiliser les opérations 64 bits natifs sans problèmes de débordement.

Une mise en œuvre simple (Delphi) se trouve .

Autres conseils

Certains code c .

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