Liczby binarne stałoprzecinkowe
Podobnie jak w systemie dziesiętnym – liczby binarne mogą zapisane być w postaci ułamkowej. Zapis liczb w systemie dwójkowym może przyjąć postać stało lub zmiennoprzecinkową. W tym artykule zajmiemy się tymi pierwszymi czyli stałoprzecinkowymi.
Budowa liczby stałoprzecinkowej
Pierwszą istotną informacją jest to iż liczby binarne stałoprzecinkowe składają się z dwóch części:
- liczby całkowitej
- oraz ułamka
Obie części oddzielone są przecinkiem.
Zamiana liczby dziesiętnej na postać binarną
Za przykład posłuży nam liczba 10,225. Aby zamienić ją na postać binarną musimy wykonać następujące czynności:
- Zamieniamy liczbę całkowitą na postać binarną tradycyjnym sposobem
10(10) = 1010(2)
- Następnie pod lupę bierzemy część ułamkową. Liczbę mnożymy przez 2, jeśli wynik z mnożenia będzie większy niż 1 obok działania wpisujemy 1. Jeśli natomiast będzie niższy od jeden – wtedy zapisujemy cyfrę 0. Metodę świetnie obrazuje poniższy przykład:
0,225 <– nasza liczba ułamkowa
0,225 * 2 = 0,45 0
0,45 * 2 = 0,90 0
0,9 * 2 = 1,8 1
0,8 * 2 = 1,6 1
0,6 * 2 = 1,2 1
0,2 * 2 = 0,4 0
0,4 * 2 = 0,8 0
0,8 * 2 = 1,6 1
——————————-< w tym momencie działanie mnożenia powtórzyło się. Możemy więc już zakończyć procedurę.
0,6 * 2 =
- Po zakończeniu mnożenia nasz wynik stanowią zera i jedynki spisane od góry do dołu.
Tak więc 10,225(10) = 1010,00111001(2)
Zamiana liczby binarnej stałoprzecinkowej na postać dziesiętną
W tym przykładzie zajmiemy się liczbą 1101,11(2). Aby zamienić nasz przykład na liczbę dziesiętną posłużymy się sposobem bardzo podobnym do tradycyjnej zamiany liczb z systemu dwójkowego na dziesiętny. Otóż :
- Podpisujemy kolejność każdej z cyfr w naszej liczbie w ten oto sposób
3 2 1 0 -1 -2
1 1 0 1 , 1 1 (2)
- Następnie mnożymy każdą z cyfr binarnych przez 2 do potęgi którą wyznacza jej kolejność w całej liczbie
1101, 11(2) = 1 * 23 + 1 * 22 + 0 * 21 + 1 *20 + 1* (2-1) + 1 * (2-2) =
= 8 + 4 + 0 + 1 + 1/2 + 1/4 = 13 + 3/4 = 13,75(10)
Mam nadzieję, że artykuł dostatecznie jasno wyjaśnił Państwu idee zamiany liczb dziesiętnych na liczby binarne stałoprzecinkowe 🙂
201:2=100 r=1
100:2=50 r=0
50:2=25 r=0
25:2=12 r=1
12:2=6 r=0
6:2=3 r=0
3:2=1 r=1
1:2=0 r=1
10010011
a 0,125? bo w pewnym momencie otrzymujemy 0,5*2 co daje jeden, a algorytm jest w tym punkcie dziurawy
Jest to koniec zadania – przerywamy algorytm.
Dajemy jeden i kończymy obliczenia.