T: Systemy liczbowe.
12.09.2022
Najczęsciej używanym systemem liczbowych przez nas jest system dziesiątkowy. (decymalny)
Przykładem liczby decymalnej jest 2137 lub nie wiem, 4982482. W kontekście przeliczeń między różnymi systemami liczbowymi zapisujemy je 213710 i 498248210.
Aby przeliczyć liczbę decymalną na jakikolwiek system, musimy najpierw zamienić ją na system binarny. Jak? No, patrz jak to wygląda w dziesiątkowym. Każdy rząd to 10 do coraz to wyższej potęgi.
| 2 | 1 | 3 | 7 |
| 103 | 102 | 101 | 100 |
| 1000 | 100 | 10 | 1 |
No, rząd jedności, rząd dziesiątek, rząd setek etc.. wydaje mi się, że coś o tym było w podstawówce, więc raczej rozumiemy.
Teraz wystarczy zamienić 10 na coś innego. Najważniejsza jest zamiana na system dwójkowy (binarny), więc od tego zacznijmy.
213710 = ?2
| 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Jak widać, w systemie dziesiętnym zamiast rzędów jednostek, dziesiątek.. (1, 10..) są rzędy jednostek, par, kwartetów.. ok, nie wydaje mi się, żeby miały jakieś oficjalne nazwy, ale NO, są 1, 2, 4, 8, 16 etc.
Teraz wystarczy jakoś zmieścić 2137 w ten system. Kuryłowicz pokazał nam 2 sposoby, jeden na chłopski rozum, drugi na mechaniczne obliczenia. Najpierw zobaczmy ten pierwszy, bo często zajmuje znacznie mniej czasu.
| 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
| 211 | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
| 2137 -2048 |
89 -64 |
25 -16 |
9 -8 |
1 -1 |
|||||||
| 89 | 89 | 89 | 89 | 89 | 25 | 25 | 9 | 1 | 1 | 0 | 1 |
213710 = 1000010110012
Odejmujemy od liczby10 największą potęgę 2 jaką można, potem kolejną największą jaką można, aż odejmiemy wszystko. Jeśli można odjąć, wpisujemy w tabelce '1'. Jeśli nie, '0'.
Bardziej mechaniczny sposób wygląda tak:
2137:2|1
1068:2|0
534:2|0
267:2|1
133:2|1
66:2|0
33:2|1
16:2|0
8:2|0
4:2|0
2:2|0
1:2|1
Liczbę decymalną dzielimy przez 2 i po prawej stronie kreski piszemy resztę (czyli boolean czy liczba jest nieparzysta), wynik dzielenia przenosimy niżej aż do końca. Liczba binarna wychodzi nam czytając prawą stronę od dołu w górę. Można sprawdzić, wyszło to samo co chłopskim rozumem.
Oprócz n10 i n2 spotkamy się na pewno z systemem szesnastkowym (heksadecymalnym) i ósemkowym (oktalnym).
Przeliczenie na te 2 systemy jest bardzo proste, o ile masz już wynik w systemie binarnym.
Dla systemu oktalnego bierzemy po 3 cyfry z liczby binarnej i przeliczamy te podzielone kawałki na system dziesiętny.
100|001|011|001
| 4 | 1 | 3 | 1 |
| 1002 | 0012 | 0112 | 0012 |
213710 = 1000010110012 = 41348
Najwyższą cyfrą w systemie zawsze jest liczba mniejsza o 1 niż jej nazwa. W dziesiętnym mamy 0-9, w dwójkowym 0-1, w oktalnym 0-7.
Aby przeliczyć na szesnastkowy, robimy to samo, ale bierzemy po 4 cyfry.
1000|0101|1001
| 8 | 5 | 9 |
| 10002 | 01012 | 10012 |
213710 = 1000010110012 = 41348 = 85916
Można też stosować zapisu pochodnego od łacińskich nazw tych systemów zamiast liczb.
2137D = 100001011001B = 4134O = 859H
Jeszcze jeden malutki przykład by zademonstrować specyfikę systemu heksadecymalnego.
| 10 | 2 | 15 |
| 10102 | 00102 | 11112 |
....i jak tu to teraz zapisać? 1010001011112 = 1021516? No, nie. (10)2(15) też nie. W systemie szesnastkowym po cyfrze 9 zaczynają się litery.
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Proste.
1010001011112 = A2F16
Systemu binarnego używa się, wiadomo. Wszędzie w komputerach, choć zwykle za kulisami.
Systemu heksadecymalnego używa się np w hex code'ach, czyli kolorach zapisanych w stylu #000000, #fdb4e6.
Oktalnego tbh nwm sam se wyszukaj eluwinka