Leon Orlikowski
Binarny/dwójkowy system liczenia
Podstawą, na której opiera się technika informatyczna jest binarny system liczenia. W binarnym systemie liczenia wszystkie liczby tworzone są z dwóch cyfr: 0 oraz 1, a kolejne miejsca usytuowania owych 1 w liczbie binarnej w kierunku od jej końca (od strony prawej) do początku (w kierunku do strony lewej) określają coraz większe jej wartości. Największą wartość w liczbie systemu binarnego L2 ma cyfra 1, od której rozpoczyna się zapis liczby według następującej funkcji w dziesiętnym systemie liczenia:
L10 = C(0,1) . 2i-1
Wartości kolejnych cyfr 1 są określone ich usytuowaniem w liczbie binarnej, czyli według wskaźnika wykładniczego i. Natomiast cyfry 0 są zerowe, nie mają przyporządkowanej wartości, podobnie jak w dziesiętnym systemie liczenia. Współczynnik C w kolejnych etapach transformacji liczby dziesiętnej L10 w liczbę binarną L2 przybiera wartość C = 1, gdy transformowana wartość binarna mieści się w reszcie liczby dziesiętnej: np. dla etapu drugiego w poniższym algorytmie transformacji liczby systemu dziesiętnego L10 w system binarny L2 owa reszta wynosi 41 a transformowana wartość liczby binarnej wynosi: Cx25 = 1×25 = 1×32, czyli cyfra binarna C = 1. Natomiast dla etapu trzeciego nie ma wartości dla liczby binarnej, bo reszta liczby dziesiętnej wynosi 9 a nie 16 = 24 lub więcej. Dlatego dla etapu trzeciego wyliczenie cyfry binarnej wynosi: Cx24 = 0x24 = 0x16 , czyli C = 0.
Wartości najniższych liczb dziesiętnych w systemie liczb binarnych:
010 = 0x20 = 02; 110 = 1×20 = 12; 210 = 1×21 + 0x20 = 102 + 02 = 102; lub też jako suma jedynek (12): 210 = 1×20 + 1×20 = 12 + 12 = 102 310 = 1×21 +1×20 =102 + 12 = 112; lub też jako suma jedynek (12): 310 = 1×20 + 1×20 + 1×20 = (12 + 12) + 12 = (102) + 12 = 112; 410 = 1×22 + 0x21 + 0x20 = 1002 + 02 + 02 = 1002; 510 = 1×22 + 0x21 + 1×20 = 1002 + 02 + 12 = 1012
Algorytm transformacji liczby systemu binarnego L2 w dziesiętny L10
1101001 = 1×26 + 1×25 + 0x24 + 1×23 + 0x22 + 0x21 + 1×20
= 1×64 + 1×32 + 0x16 + 1×8 +0x4 + 0x2 + 1×1 = 10510
Algorytm transformacji liczby systemu dziesiętnego L10 w binarny L2
Liczba w L10 ! Transformacja w L2 ! Reszta (1 – 2) ! Lokata cyfry binarnej w L2
1 ! 2 ! 3 ! 4
105 ! 64 = 1×26 ! 41 ! 17
41 ! 32 = 1×25 ! 9 ! 16
9 ! 0 = 0x24 ! 9 ! 05
9 ! 8 = 1×23 ! 1 ! 14
1 ! 0 = 0x22 ! 1 ! 03
1 ! 0 = 0x21 ! 1 ! 02
1 ! 1 = 1×20 ! 0 ! 11
X ! L10 = 105 (suma) ! X ! L2 = 1101001
L10 = 1×26 + 1×25 + 0x24 + 1×23 + 0x22 + 0x21 + 1×20 = 64+32+0+8+0+0+1 = 105
Dodawanie liczb binarnych
0 + 0 = 0; 0 + 1 = 1; 1 + 1 = 10; 10 + 10 = 100; 10 + 11 = 101;
11 + 11 = 110; 101 + 11 = 100; 101 + 101 = 1010; 110 + 110 = 1100;
110 + 101 = 1011; 110 + 111 = 1101; 101+ 111 = 1100;
111 + 111 = 1110; 1111 + 1111 = 11110, a w transformacji na L10 jest:
1111 = 1×23 + 1×22 + 1×21 + 1×20 = 8 + 4 + 2 + 1 = 15
+ 1111 = 1×23 + 1×22 + 1×21 + 1×20 = 8 + 4 + 2 + 1 = 15
= 2×23 + 2×22 + 2×21 + 2×20 + = 2×8 + 2×4 + 2×2 + 2×1 = 30
11110 = 1×24 + 1×23 + 1×22 + 1×21 + 0x20 = 16 + 8 + 4 + 2 + 0 = 30
__________________________________________________________________________________________________________________________________________________________
1101001 1×26+1×25+0x24+1×23+0x22+0x21+1×20 64 + 32 + 8 + 1 105
+ 1001 + 1×23+0x22+0x21+1×20 + 8 + 1 + 9
_______ ___________________________ ____________ ____
1110010 1×26+1×25+1×24+0x23+0x22+1×21+0x20 64 + 32 + 16 + 2 + 0 114
Odejmowanie liczb binarnych
1101001 1×26+1×25+0x24+1×23+0x22+0x21+1×20 64 + 32 + 8 + 1 105
– 1001 – 1×23-0x22-0x21 -1×20 – 8 – 1 – 9
________ _______________________ ____________ ________
1100000 1×26+1×25+0x24+0x23+0x22+0x21+0x20 64 + 32 + 0 + 0 96
Odejmowanie z pożyczaniem cyfry
0101
1101001 1×26+1×25+0x24+1×23+0x22+0x21+1×20 64 + 32 + 8 + 1 105
– 1010 – 1×23-0x22– 1×21-0x20 – 8 – 2 10
__________ ________________________________ ___________ ___________
1011111 1×26+0x25+1×24+1×23+1×22+1×21+1×20 64+16+8+4+2+1 95
Mnożenie w systemie binarnym jest wykonywane na zasadzie wielokrotnego równego wartości mnożnika dodawania wartości liczby mnożnej.
Dzielenie zaś jest realizowane poprzez wielokrotne odejmowanie od liczby dzielonej wartości liczby dzielnika dopóty, dopóki z liczby dzielonej pozostanie reszta mniejsza od wartości dzielnika względnie liczba dzielona wydzieli się bez reszty. Wielokrotność odejmowania dzielnika od dzielnej plus jeden jest równa ilorazowi.