Systemy liczbowe, Kod U2 i Zmiennoprzecinkowe
Zrozum, jak komputer naprawdę widzi liczby. Konwersje systemów, zapis liczb ujemnych w U2 oraz budowa liczb zmiennoprzecinkowych (znak, cecha, mantysa).
Konwersje między systemem dwójkowym, dziesiętnym i szesnastkowym pojawiają się w arkuszu razem z zapisem liczby ujemnej w U2 i pytaniem prawda/fałsz o dokładność liczb zmiennoprzecinkowych. Schemat jest co roku ten sam: dzielenie z resztą w jedną stronę, sumowanie wag w drugą, a przy U2 trzy ruchy — moduł, negacja bitów, dodanie jedynki. To zadania, które da się wytrenować do automatu.
- Konwersje systemów: Binarny, Decymalny, Hex
Procesory posługują się wyłącznie stanami napięcia (jest prąd / nie ma prądu), dlatego absolutną podstawą informatyki jest system dwójkowy (binarny – zera i jedynki). System szesnastkowy (heksadecymalny, w którym używamy cyfr 0-9 i liter A-F) powstał z kolei tylko po to, by skrócić potężne ciągi binarne do formatu strawnego dla ludzkiego oka.
Stosujemy algorytm dzielenia całkowitego z resztą. Dzielimy liczbę przez podstawę (2 lub 16), spisujemy reszty, a następnie czytamy je od dołu do góry.
Mnożymy cyfry przez wagi pozycji. Dla binarnego wagi (od prawej) to: 1, 2, 4, 8, 16... Wystarczy zsumować wagi tych pozycji, na których stoi 1!
Każdą cyfrę szesnastkową można zapisać jako dokładnie 4 bity (tzw. tetradę). Np. F to 1111, a 5 to 0101. Zatem 0x5F to po prostu sklejone 01011111!
- Liczby ujemne: Magia kodu U2
Jak zapisać minus w pamięci RAM, skoro istnieją tam tylko zera i jedynki? Twórcy komputerów wymyślili, by zarezerwować najstarszy bit (ten najbardziej po lewej) jako bit znaku.
Jeśli najstarszy bit wynosi 0, liczba jest dodatnia. Jeśli 1, jest ujemna. Standardem maturalnym używanym we wszystkich komputerach świata jest kod U2 (Uzupełnień do dwóch). Pozwala on procesorowi dodawać liczby dodatnie i ujemne używając tego samego układu elektronicznego!
Zadanie
Zapisz liczbę dziesiętną wykorzystując 8-bitowy system uzupełnień do dwóch (U2).
💡 Pokaż rozwiązanie krok po kroku▼
- Ułamki i notacja zmiennoprzecinkowa (IEEE 754)
Zapisanie ułamka 0.15 jest dla maszyny znacznie trudniejsze niż zapis liczby całkowitej. Służy do tego notacja zmiennoprzecinkowa, opisana uniwersalnym wzorem:
Zapis takiej liczby składa się z 3 nierozerwalnych, połączonych ze sobą bloków:
- Maturalna pułapka: Błąd precyzji
"Czy każdą ułamkową liczbę dziesiętną da się precyzyjnie zapisać w systemie binarnym?"
Tak jak w systemie dziesiętnym nie da się skończenie zapisać ułamka (mamy ), tak system dwójkowy ma ten sam problem ze zwykłymi ułamkami jak 0.1 czy 0.2! Tworzą one rozwinięcia nieskończone okresowe w systemie binarnym. Ponieważ Mantysa ma ograniczoną pojemność (np. 23 bity), końcówka jest brutalnie ucinana. To dlatego w programowaniu np. w Pythonie działanie 0.1 + 0.2 często wyrzuci Ci wynik 0.30000000000000004.
Lista pomyłek, które kosztują punkty mimo poprawnego rozumowania — i sposoby, żeby ich uniknąć.
Korepetycje z informatyki
Zdajesz maturę rozszerzoną z informatyki?
Prowadzimy indywidualne przygotowanie do matury z informatyki — algorytmy, Python i C++, bazy danych i arkusz kalkulacyjny. Zajęcia online, na arkuszach CKE. Zobacz program i cennik.
Zobacz korepetycje z informatykiUczysz się w technikum informatycznym? Prowadzimy też przygotowanie do kwalifikacji INF.02, INF.03 i INF.04. Zobacz egzaminy zawodowe →
Nadal czujesz się niepewnie?
To tylko jeden z pewniaków. Na kursie przechodzimy przez nie wszystkie, krok po kroku, aż poczujesz ten spokój.
Pomóżcie mi zdać maturę!