2009-12-08 15 views
5

Ho un numero a 128 bit memorizzato come 2 numeri a 64 bit ("Hi" e "Lo"). Ho solo bisogno di dividerlo con un numero a 32 bit. Come potrei farlo, usando le operazioni native a 64 bit dalla CPU?Divisione a 128 bit senza segno su macchina a 64 bit

(Si prega di notare che NON HO bisogno di una libreria di precisione arbitraria, ma solo di sapere come fare questa semplice divisione usando operazioni native. Grazie).

risposta

3

Se si memorizza il valore (128 bit) utilizzando la più grande rappresentazione nativa possibile gestita dall'architettura (64 bit), si avranno problemi nella gestione dei risultati intermedi della divisione (come già rilevato :)).

Ma è sempre possibile utilizzare una rappresentazione SMALLER. Che ne dici di QUATTRO numeri di 32-bit? In questo modo è possibile utilizzare le operazioni native a 64 bit senza problemi di overflow.

Un'implementazione semplice (in Delphi) può essere trovata here.

+0

Perfetto. Grazie! – rookie

2

Qualche codice c here.

Problemi correlati