Reprezentacja liczb w komputerze: kod U2 i ułamki dwójkowe

Ten materiał dotyczy tego, jak komputer przechowuje liczby — tematu, który podstawa programowa informatyki w zakresie rozszerzonym opisuje jako sposoby reprezentowania liczb, wykonywania działań arytmetycznych i operacji logicznych oraz źródła błędów w obliczeniach komputerowych. To uzupełnienie materiału o systemach liczbowych: tam ćwiczysz zamiany między podstawami, tutaj — to, co dzieje się z liczbą zapisaną na stałej liczbie bitów.

Pierwsza część to liczby całkowite. Porównujesz zakres liczb bez znaku ($0 \ldots 2^n - 1$) z zakresem kodu uzupełnień do dwóch, czyli U2 ($-2^{n-1} \ldots 2^{n-1} - 1$). Uczysz się zapisywać liczbę ujemną metodą „odwróć bity i dodaj 1” oraz szybko odczytywać wartość słowa w U2, pamiętając, że najstarszy bit ma wagę ujemną. Widzisz też, że ten sam ciąg bitów oznacza co innego jako liczba bez znaku, a co innego w U2.

Druga część to arytmetyka i operacje na bitach. Dodajesz liczby w U2 na 8 bitach i rozpoznajesz przepełnienie: suma dwóch liczb dodatnich, która wychodzi ujemna, to sygnał, że wynik nie zmieścił się w zakresie. Krótkie programy w Pythonie pokazują przesunięcia bitowe (<< i >>) jako mnożenie i dzielenie całkowite przez potęgi dwójki oraz operacje AND, OR i XOR — przewidujesz, co program wypisze, tak jak w zadaniach z analizą gotowego kodu.

Trzecia część to ułamki. Zamieniasz ułamek dwójkowy na dziesiętny i odwrotnie, metodą mnożenia przez 2, i dowiadujesz się, dlaczego 0,1 nie da się zapisać w systemie dwójkowym na skończonej liczbie bitów. Stąd bierze się błąd zaokrąglenia, przez który w Pythonie porównanie 0.1 + 0.2 == 0.3 daje False, i stąd zasada, by liczby zmiennoprzecinkowe porównywać z tolerancją.

Materiał oferuje cztery formy pracy. Quiz zawiera zadania obliczeniowe i analizę krótkich programów z wyjaśnieniem każdego kroku. Fiszki utrwalają pojęcia: bit znaku, zakresy, liczba przeciwna, przepełnienie, operacje bitowe. Egzamin ustny w formie rozmowy z egzaminatorem sprawdza, czy umiesz objaśnić te mechanizmy własnymi słowami. Praca pisemna do wydruku zawiera zadania otwarte z pełnym rachunkiem i uzasadnieniem.

Wszystkie zadania są oryginalnymi ćwiczeniami do samodzielnej nauki i zawierają komplet potrzebnych danych.

  • Podajesz zakres liczb bez znaku i liczb w kodzie U2 dla danej liczby bitów.
  • Zapisujesz liczbę ujemną w kodzie U2 i odczytujesz wartość słowa w U2.
  • Rozpoznajesz przepełnienie przy dodawaniu w U2.
  • Przewidujesz wynik przesunięć bitowych oraz operacji AND, OR i XOR w Pythonie.
  • Zamieniasz ułamki między systemem dziesiętnym a dwójkowym i wyjaśniasz źródło błędu zaokrąglenia.

Materiał ćwiczeniowy przygotowany przez Zestly.

Przykładowe pytanie

Jaki jest zakres wartości liczb całkowitych bez znaku, które można zapisać na 8 bitach?

Zobacz odpowiedź

0 do 255

Dla $n$ bitów zakres liczb bez znaku wynosi $0$ do $2^n - 1$. Dla $n=8$ mamy $2^8 - 1 = 256 - 1 = 255$.

← Informatyka

↑ Matura