F1-11
© J. Kalisz, WAT, 2008
Konwersja liczb z kodu dziesiętnego na dwójkowy
• Dziesiętna liczba (część)
całkowita
L => liczba dwójkowa B
B = b
n-1
...b
1
b
0
Kalkulator Google:
L
in binary
(Enter), np. 174 in binary (Enter) = 0b10101110
Algorytm konwersji
: iteracyjne dzielenie przez 2, dopóki nie
otrzyma się wyniku dzielenia o zerowej części całkowitej.
Np. L = 57
10
57/2 = 28 + ½
b
0
= 1
28/2 = 14 + 0
b
1
= 0
14/2 = 7 + 0
b
2
= 0
7/2 = 3 + ½
b
3
= 1
3/2 = 1 + ½
b
4
= 1
1/2 = 0 + ½
b
5
= 1
B = b
5
b
4
b
3
b
2
b
1
b
0
= 111001
2
• Dziesiętna liczba (część)
ułamkowa
L => liczba dwójkowa B
B = 0.b
-1
b
-2
...b
-m
Kalkulator Google nie wykonuje konwersji liczb ułamkowych!
Algorytm konwersji
: iteracyjne mnożenie przez 2, dopóki nie
otrzyma się wyniku mnożenia z zerową częścią ułamkową
lub żądanej liczby bitów wyniku B.
Np. L = 0.34
10
0.34·2 = 0.68
b
-1
= 0
0.68·2 = 1.36
b
-2
= 1
0.36·2 = 0.72
b
-3
= 0
0.72·2 = 1.44
b
-4
= 1
0.44·2 = 0.88
b
-5
= 0
0.88·2 = 1.77
b
-6
= 1 itd.
B ≈ 0.b
-1
b
-2
b
-3
b
-4
b
-5
b
-6
= 0.010101…
2