"JS" <dsa.@asdf.com> writes:
> Er der en lidt smartere måde at konvertere 0.92762 til et binært tal end ved
> at gange det med 2 indtil brøken forsvinder?
>
> 0.92762 * 2 = 1.85524 (0.1)
> .85524 * 2 = 1.71048 (0.11)
> .71048 * 2 = 1.42096 (0.111)
Næh. Din metode fungerer fint og er standardmetoden for at konvertere
tal mellem 0 og 1 fra decimalnotation til andre talsystemer. Du skal
dog passe på, at afrundingsfejl måske betyder, at du aldrig får brøken
til at forsvinde.
Du kan dog kombinere flere skridt af gangen, f.eks. ved at gange med
16 og slå heltalsdelen op i en tabel, der konverterer til et firebit
heltal.
F.eks. 0.92762 * 16 = 14.8419, 14 = 1110 i binært, 0.8419 * 16 =
13.4704, 13 = 1101 i binært, så 0.92762 = 0.11101101... i binært.
Torben
|