Systemy liczbowe

Udostępniając artykuł pomożesz mi rozwinąć blog. Weź w tym udział!

#jedenasta37
Trochę zabierałem się do tego artykułu jak do jeża, czuje się głupi, gdy widzę skomplikowane wzory matematyczne, które zostawiają w głowie tylko jedno wielkie WTF. Ale cóż popełniło się artykuł o błędzie zaokrąglania, to teraz trzeba wytłumaczyć dlaczego ten błąd się pojawił 🙂
Zapraszam na nowy cykl artykułów z serii „Podstawy informatyki i kawa”.
Wpis z dedykacją dla Madzi J

Systemy liczbowe tak naprawdę już znasz

Uczymy się liczyć od małego – najpierw dziesięciu cyferek, potem dodawania i odejmowania, mnożenia, dzielenia i różniczkowania nawet. Te 10 cyfr jest dla nas tak oczywiste, że nawet nie zauważamy, że to tylko jakaś forma zapisu – system dziesiętny. A przecież na co dzień spotykamy się choćby z systemem dwunastkowym, którego używali Rzymianie: mamy dwanaście miesięcy, dwanaście godzin przedpołudniowych i popołudniowych.
Są wśród nas tacy, którzy kupują jajka na tuziny! Może też ktoś tak sprzedaje jaja? A jeśli rodzina ma więsze potrzeby, albo Wielkanoc idzie, to można kupić gros, czyli tuzin tuzinów, co znaczy 12*12 = 144 lub kope czyli połowę grosa, a jeśli ktoś planuje naprawdę tęgą wyżerkę to może liczyć w grosach królewskich (12 grosów czyli 12,czyli 1728).
Historycznie przez lata różne waluty były liczone w systemie dwunastkowym (do 1970 w Wielkiej Brytanii jeden szyling wynosił 12 pensów).

Czas na matematykę!

System dziesiętny, którego używamy jest systemem pozycyjnym, co znaczy, że pozycja cyfry w zapisie ma znaczenie: ta sama 5 (piątka), ten sam znaczek, może oznaczać 5, 50 albo 500..

Każda pozycja ma przypisaną pewną wagę. Czyli to, co napisałem powyżej: dana cyfra oznacza mniej lub więcej sztuk czegoś, w zależności od tego, na jakim miejscu została zapisana. Tą wagę obliczamy w ten sposób, że mnożymy cyfrę przez podstawę systemu, w którym zapisana jest liczba, podniesioną do potęgi oznaczającej pozycję danej cyfry. Czyli u nas podstawą systemu będzie to 10, bo system ma 10 znaków do zapisu: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Pozycję cyfry numerujemy od prawej strony od 0. Czyli dla rzędu jedności waga wynosi 10, czyli 1, co by się zgadzało, bo w liczbie 123, 3 oznacza 3 sztuki.
Dla rzędu dziesiątek, waga wynosi 101, co też się zgadza, bo w 123 liczba 2 oznacza dwie dziesiątki, czyli 20, czyli 2 * 10.

  • liczba 11 oznacza tak naprawdę 10 + 1
  • liczba 111 oznacza tak naprawdę 100 + 10 + 1

używając zapisu potęgowego wygląda to tak:

  • 11 <=> 1 * 101 + 1 * 100
  • 111 <=> 1 * 102 + 1 * 101 + 1 * 100

jeżeli chcemy zapisać że coś jest liczba ujemną dodajemy znak „-”

  • -11 <=> – 1 * 101 – 1 * 100
  • -111 <=>  – 1 * 102 – 1 * 101 – 1 * 100

A co z groszami?

Przejdźmy o kroczek dalej: jak zapisujemy liczby niecałkowite, to dodajemy przecinek na te wszystkie ułamkowe wartości. Każda cyfra, znajdująca się na pozycji po przecinku, będzie mnożona do ujemnej potęgi analogicznie do tych przykładów:

  • Liczba 0,1 znaczy tyle, co 0 * 100 + 1 * 10-1 , czyli 0 * 0 + 1 * 1/10
  • Liczba 0,32 znaczy tyle, co 0 * 100 + 3 * 10-1 + 2 * 10-2 , czyli 0 * 0 + 1 * 3/10 + 1 * 2/10

Dlatego mówimy np czternaście (w domyśle: części) setnych, 2 (części) dziesiąte 🙂

Konsekwentnie idąc dalej

  • liczba 111,1 oznacza tak naprawdę 100 + 10 + 1 + 0,1
  • 11,1 <=> 1 * 102 + 1 * 101 + 1 * 100 + 1 * 10-1

Mam nadzieje że pisze zrozumiale 🙂
Jak nie rozumiemy, pijemy łyk kawy i czytamy jeszcze raz. Jak dalej nic, wbijamy do grupy matki programistki i wyrzucamy pytania z wątpliwościami.

A co to ma wspólnego z kompami?

Skoro wiemy w jakim systemie liczymy, to ucieszymy się zapewne z tego, że komputery liczą tak samo, tzn. dodają, odejmują i mnożą. Jedyna różnica polega na tym, że używają do tych zadań systemu dwójkowego (in. binarnego). To wszystko dlatego, że biedactwa nie mają 10 cyfr, mogą tylko stwierdzić, czy mają prąd w transformatorku, czy go też go tam nie mają, co odpowiada za obsługę dwóch stanów / znaków: 0 i 1.

Uwaga, będzie suchar!

Jest 10 rodzajów ludzi: ci którzy rozumieją system dwójkowy i ci którzy nie rozumieją.

10 w zapisie binarnym to inaczej 1* 21 + 0 * 20

Yyy, a jak rozróżnić w jakim systemie zapisano liczbę?

Żeby się nie pogubić w różnych systemach, używa się notacji, w której w indexie dolnym zapisujemy bazę systemu: na przykładzie liczby 101

  • 101­­10 oznacza system dziesiętny, czasami można się spotkać z zapisem 101dec
  • 1012 oznacza system dwójkowy zwany binarnym , czasami można się spotkać z zapisem 101bin
  • 1018 oznacza system ósemkowy zwany oktalnym, czasami można się spotkać z zapisem 101oct
  • 10116 oznacza system szesnastkowy zwany heksadecymalnym, czasami można się spotkać z zapisem 101hex

System dwójkowy ma podstawę dwa czyli :

Zapis dwójkowy Zapis potęgowy Zapis sumaryczny Zapis dziesiętny
112 1* 21 + 1* 20 2 + 1 310
1112 1* 22 + 1* 21 + 1* 20 4 + 2 + 1 710
111,12 1* 22 + 1* 21 + 1* 20 + 1* 2-1 4 + 2 + 1 + 7,510

Dalej jest jeszcze ciekawiej 🙂
W następnym tygodniu zapraszam na wpis o tym jak przeliczać różne systemy między sobą.

Post Scriptum

Tak można teraz już wypić kawę 😛

Udostępniając artykuł pomożesz mi rozwinąć blog. Weź w tym udział!

2 thoughts on “Systemy liczbowe

    1. Poczytałem,
      Problem utraty cyfr znaczących wysypuje w reprezentacji liczby rzeczywistej przy odejmowaniu, zresztą nie tylko w komputerach.

      Problem z ucinaniem kocówek liczb typu 0.1 przez komputer, spowodowany jest przede wszystkim tym, że liczbą 0.1 w zapisie dwójkowym jest ułamkiem okresowym, a w zapisie dziesiętnym ułamkiem zwykłym.
      Pozdrawiam

Skomentuj Szymek Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *