Systemy liczbowe: zadania z rozwiązaniami krok po kroku

Inaczej: system dwójkowy · system szesnastkowy · zamiana systemów liczbowych

Darmowe zadania z tematu Systemy liczbowe z rysunkami, podpowiedziami i pełnymi rozwiązaniami. Za każdym razem nowe wartości, na trzech poziomach: z dwójkowego i szesnastkowego na dziesiętny, kod uzupełnień do dwóch, bity, zakresy i pamięć.

Darmowe zadanieŁatwy
klikaj bity, aby je ustawić012806403201608040201

Ustaw bity tak, aby 8-bitowy rejestr zawierał 0x99. Jaka jest wartość wzorca N w zapisie dziesiętnym?

0x99

Kliknij bit, aby przełączyć go między 0 a 1. Pole pokazuje twój wzorzec jako liczbę bez znaku, możesz go też wpisać. Dokładna odpowiedź: liczba całkowita, bez zaokrąglania.

Następne zadanie →

Co ćwiczysz

  1. Łatwyz dwójkowego i szesnastkowego na dziesiętny
  2. Średnikod uzupełnień do dwóch
  3. Trudnybity, zakresy i pamięć

Najważniejsze wzory

Wagi pozycji
dwójkowy 2k, ósemkowy 8k, szesnastkowy 16k
Na dziesiętny
Σ dk·bk
Z dziesiętnego
dziel przez podstawę, czytaj reszty od dołu do góry
Szesnastkowy ↔ dwójkowy
jedna cyfra szesnastkowa = 4 bity
Kod uzupełnień do dwóch (U2)
odwróć bity i dodaj 1

Naucz się tematu Systemy liczbowe od zera

1Czym jest system liczbowy

W życiu codziennym liczysz w systemie dziesiętnym, o podstawie 10. Ma dziesięć cyfr, od 0 do 9, a każde miejsce jest warte dziesięć razy więcej niż miejsce po jego prawej stronie.

W liczbie 352 cyfra 3 jest warta 300, cyfra 5 jest warta 50, a cyfra 2 jest warta 2. Miejsca mają wartości 1, 10, 100, licząc od prawej.

352 = 3 · 100 + 5 · 10 + 2 · 1

Komputer przechowuje wszystko jako przełączniki włączone lub wyłączone. Dlatego liczy w systemie dwójkowym (binarnym), o podstawie 2, tylko z cyframi 0 i 1.

Jedna cyfra dwójkowa to bit. Grupa 8 bitów to bajt.

Zasada jest taka sama w każdym systemie: każda cyfra jest warta swoją wartość razy potęgę podstawy.

Samosprawdzenie Ile jest warta cyfra 7 w liczbie dziesiętnej 4721?
  1. 7000
  2. 700
  3. 70
  4. 7

Odpowiedź: 700. Licząc od prawej, miejsca mają wartości 1, 10, 100 i 1000. Cyfra 7 stoi na trzecim miejscu, więc jest warta 7 · 100 = 700.

2System dwójkowy i szesnastkowy

W systemie dwójkowym miejsca mają wartości 1, 2, 4, 8, 16 i tak dalej, licząc od prawej. Każde miejsce jest warte dwa razy więcej niż miejsce po jego prawej stronie.

W liczbie 8-bitowej miejsca mają wartości 128, 64, 32, 16, 8, 4, 2 i 1.

012806413211608041201

Aby odczytać liczbę dwójkową, dodaj wartości miejsc wszystkich bitów równych 1. Dla 0011 0010 jest to 32 + 16 + 2 = 50.

Długie ciągi bitów trudno czytać. Programiści często zapisują je zamiast tego w systemie szesnastkowym (hex), o podstawie 16.

System szesnastkowy potrzebuje 16 cyfr. Używa cyfr od 0 do 9, a potem liter A = 10, B = 11, C = 12, D = 13, E = 14 i F = 15.

Miejsca w systemie szesnastkowym mają wartości 1, 16, 256 i 4096, licząc od prawej. Liczbę szesnastkową często zapisuje się z 0x z przodu, na przykład 0x2F.

Jedna cyfra szesnastkowa to dokładnie 4 bity, więc 0011 0010 to 0x32: 0011 to 3, a 0010 to 2.

Samosprawdzenie Ile to jest 0x1A w systemie dziesiętnym?
  1. 110
  2. 11
  3. 161
  4. 26

Odpowiedź: 26. A = 10. Miejsca mają wartości 16 i 1, więc 1 · 16 + 10 · 1 = 26. Zapisanie cyfr obok siebie (110) lub ich dodanie (11) pomija wartości miejsc. 161 używa miejsc w złej kolejności.

3Liczby ujemne: kod uzupełnień do dwóch

Bajt, w którym wszystkie miejsca są dodatnie, przechowuje wartości od 0 do 255. Nazywamy to zapisem bez znaku.

Do przechowywania liczb ujemnych komputery używają kodu uzupełnień do dwóch. Jedyna zmiana polega na tym, że skrajnie lewy bit jest wart −128 zamiast +128.

1−12806403201608041211

Zatem 1000 0011 to −128 + 2 + 1 = −125. Skrajnie lewy bit nazywa się bitem znaku: gdy wynosi 1, liczba jest ujemna.

8-bitowa liczba w kodzie uzupełnień do dwóch obejmuje zakres od −128 (1000 0000) do +127 (0111 1111).

Aby zapisać liczbę ujemną −x, zacznij od +x w zapisie dwójkowym, zaneguj każdy bit (0 zamień na 1, 1 na 0) i dodaj 1.

Przykład dla −5: 5 to 0000 0101. Po zanegowaniu bitów jest to 1111 1010. Dodanie 1 daje 1111 1011.

Ten sam wzorzec odczytany jako liczba bez znaku ma wartość 256 − x. Dla −5 jest to 251, a 1111 1011 to rzeczywiście 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.

Samosprawdzenie 8-bitowy wzorzec 1111 1111 zapisuje liczbę w kodzie uzupełnień do dwóch. Jaka jest jego wartość?
  1. 255
  2. −127
  3. −128
  4. −1

Odpowiedź: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 to odczyt bez znaku. −127 wychodzi, gdy pierwszy bit potraktuje się jak znak minus przed 111 1111.

4Metoda krok po kroku

Z systemu dwójkowego lub szesnastkowego na dziesiętny:

  1. Zapisz wartość miejsca pod każdą cyfrą: potęgi 2 dla systemu dwójkowego, potęgi 16 dla szesnastkowego, zaczynając od 1 po prawej.
  2. W systemie szesnastkowym zastąp każdą literę jej wartością: od A = 10 do F = 15.
  3. Pomnóż każdą cyfrę przez wartość jej miejsca i dodaj wszystko.

Kod uzupełnień do dwóch:

  1. Aby odczytać wzorzec, nadaj skrajnie lewemu bitowi wartość −128 (w 8 bitach) i dodaj wartości miejsc wszystkich bitów równych 1.
  2. Aby zapisać −x, zapisz +x na 8 bitach, zaneguj każdy bit i dodaj 1.
  3. Wartość tego wzorca bez znaku to 256 − x. Użyj jej do sprawdzenia bitów.

Bity, zakresy i pamięć:

  1. n bitów daje 2ⁿ różnych wzorców.
  2. Bez znaku przechowują od 0 do 2ⁿ − 1. W kodzie uzupełnień do dwóch przechowują od −2ⁿ⁻¹ do 2ⁿ⁻¹ − 1.
  3. Aby każdy z k elementów dostał własny kod, znajdź najmniejsze b, dla którego 2b ≥ k.
  4. Dla pamięci pomnóż liczbę elementów przez liczbę bitów na element, a potem podziel przez 8, aby dostać bajty, i przez 1024, aby dostać KiB.
M = szerokość × wysokość × bity na piksel / 8 / 1024 (KiB)

5Przykład krok po kroku

Przejdź przez każdy krok. Spróbuj przewidzieć następny, zanim go odsłonisz.

Przykład krok po kroku

8-bitowy wzorzec 1011 0110 zapisuje liczbę całkowitą ze znakiem w kodzie uzupełnień do dwóch. Jaka jest jego wartość N w systemie dziesiętnym?

1

Zapisz wartości miejsc

1−12806413211608141201

W kodzie uzupełnień do dwóch skrajnie lewe miejsce jest warte −128. Pozostałe miejsca to 64, 32, 16, 8, 4, 2 i 1.

2

Spójrz na bit znaku

Skrajnie lewy bit wynosi 1, więc liczba jest ujemna.

3

Dodaj bity równe 1

Bity równe 1 stoją na miejscach −128, 32, 16, 4 i 2.

N = −128 + 32 + 16 + 4 + 2 = −74
4

Sprawdź za pomocą wartości bez znaku

Odczytany jako liczba bez znaku wzorzec to 128 + 32 + 16 + 4 + 2 = 182.

Dla liczby ujemnej wartość bez znaku to 256 − x, więc x = 256 − 182 = 74. Daje to znów N = −74.

5

Sprawdź przez negację

Zaneguj 1011 0110, aby otrzymać 0100 1001, a potem dodaj 1, aby otrzymać 0100 1010.

0100 1010 to 64 + 8 + 2 = 74. Zatem pierwotny wzorzec to −74.

Odpowiedź

N = −74

6Typowe błędy

  • Zapomnienie o dodaniu 1 po zanegowaniu bitów. Wynik jest o jeden za mały.
  • Odczytanie wzorca w kodzie uzupełnień do dwóch jako liczby bez znaku, na przykład 1111 1111 jako 255 zamiast −1.
  • Traktowanie bitu znaku jak znaku minus przed pozostałymi bitami. W kodzie uzupełnień do dwóch jest on wart −128.
  • Podawanie miejsc w złej kolejności. Miejsce o wartości 1 jest zawsze po prawej.
  • Przyjęcie A = 11 w systemie szesnastkowym. Litery zaczynają się od A = 10.
  • Mieszanie bitów i bajtów w zadaniach o pamięci. Podziel liczbę bitów przez 8.
Samosprawdzenie Jak wygląda −5 jako 8-bitowy wzorzec w kodzie uzupełnień do dwóch?
  1. 0000 0101
  2. 1000 0101
  3. 1111 1010
  4. 1111 1011

Odpowiedź: 1111 1011. 5 to 0000 0101. Negacja daje 1111 1010, a dodanie 1 daje 1111 1011. 1111 1010 pomija dodanie 1, a 1000 0101 stawia znak minus przed 5.

7Jak wyglądają zadania egzaminacyjne

  • Łatwe: z systemu dwójkowego i szesnastkowego na dziesiętny. Zamień 8-bitową liczbę dwójkową lub 3-cyfrową liczbę szesnastkową na dziesiętną.
  • Średnie: kod uzupełnień do dwóch. Odczytaj wartość 8-bitowego wzorca ze znakiem albo zapisz liczbę ujemną jako wzorzec i podaj jego wartość bez znaku.
  • Trudne: bity, zakresy i pamięć. Największa lub najbardziej ujemna wartość mieszcząca się w n bitach, liczba bitów potrzebnych na k kodów albo pamięć zajmowana przez obraz.

Przykład trudnego zadania: obraz 256 × 256 z 24 bitami na piksel zajmuje 256 · 256 · 24 / 8 / 1024 = 192 KiB.

Samosprawdzenie Jaka jest najmniejsza liczba bitów, która daje własny kod każdym z 375 elementów?
  1. 188
  2. 512
  3. 8
  4. 9

Odpowiedź: 9. 2⁸ = 256 to za mało kodów, 2⁹ = 512 wystarcza, więc 9 bitów. 512 to liczba kodów, a nie liczba bitów.

Ucz się krok po kroku w aplikacjiUcz się krok po kroku w aplikacji

Przykłady z rozwiązaniami

Przykład 1Łatwy
wagi pozycji2256B16E1

Zamień liczbę szesnastkową 0x2BE na dziesiętną. Wyznacz N.

0x2BEA = 10 … F = 15

Oblicz N

Pokaż podpowiedzi
  1. Pozycje szesnastkowe są warte od prawej 1, 16, 256, 4096.
  2. Zastąp litery ich wartościami (A = 10 … F = 15), pomnóż przez wagę i dodaj.
  3. 2 = 2, B = 11, E = 14.
Pokaż odpowiedź i rozwiązanie krok po kroku

Pozycyjne systemy liczbowe: każda cyfra jest warta swoją wartość razy potęgę podstawy. W systemie dwójkowym pozycje są warte 1, 2, 4, 8, 16, …, w szesnastkowym 1, 16, 256, …, a A–F oznaczają 10–15. W 8-bitowym kodzie uzupełnień do dwóch skrajny lewy bit jest wart −128 zamiast +128; tak zapisuje się liczby ujemne.

Pomnóż każdą cyfrę przez jej wagę

2·256 + 11·16 + 14·1 = 702

Odpowiedź

0x2BE = 702
Przykład 2Średni
8-bitowy kod U20−12806403201608040201

Ustaw bity tak, aby zapisywały −45 w 8-bitowym kodzie uzupełnień do dwóch. Jaka jest wartość wzorca U odczytanego jako liczba bez znaku?

N = −458 bit

Oblicz U

Pokaż podpowiedzi
  1. Zapisz 45 w systemie dwójkowym, odwróć każdy bit, a potem dodaj 1.
  2. 45 = 0010 1101₂.
  3. Jako liczba bez znaku wzorzec jest równy 256 + N.
Pokaż odpowiedź i rozwiązanie krok po kroku

Ustawianie bitów: każdy bit ma wartość będącą potęgą dwójki (128, 64, …, 1). Jedna cyfra szesnastkowa to dokładnie cztery bity, a w 8-bitowym kodzie uzupełnień do dwóch skrajny lewy bit ma wartość −128. Operacje bitowe działają osobno na każdej pozycji bitu.

Odwróć i dodaj jeden

45 = 0010 1101
odwrócone: 1101 0010
+1 → 1101 0011

Odczytaj bez znaku

1101 0011₂ = 256 − 45 = 211

Odpowiedź

U = 211
Przykład 3Trudny
klikaj bity, aby je ustawić012806403201608040201

Ustaw bity na 8-bitowy wynik działania 0111 0001 >> 3. Jaka jest wartość wyniku R w zapisie dziesiętnym?

0111 0001>> 3

Oblicz R

Pokaż podpowiedzi
  1. Przesunięcie w prawo o 3 przesuwa każdy bit o 3 pozycji w prawo; bity, które wypadną z prawego końca, są tracone, a z lewej wchodzą zera.
  2. Pracuj nad jedną pozycją bitu naraz, od lewej do prawej.
  3. Pierwsze cztery bity wyniku to 0000.
Pokaż odpowiedź i rozwiązanie krok po kroku

Ustawianie bitów: każdy bit ma wartość będącą potęgą dwójki (128, 64, …, 1). Jedna cyfra szesnastkowa to dokładnie cztery bity, a w 8-bitowym kodzie uzupełnień do dwóch skrajny lewy bit ma wartość −128. Operacje bitowe działają osobno na każdej pozycji bitu.

Bit po bicie

Przesunięcie w prawo o 3 przesuwa każdy bit o 3 pozycji w prawo; bity, które wypadną z prawego końca, są tracone, a z lewej wchodzą zera.

0111 0001 >> 3
= 0000 1110

Wartość wyniku

0000 1110₂ = 14

Odpowiedź

R = 14

Pytania i odpowiedzi

Systemy liczbowe: co to jest?

W życiu codziennym liczysz w systemie dziesiętnym, o podstawie 10. Ma dziesięć cyfr, od 0 do 9, a każde miejsce jest warte dziesięć razy więcej niż miejsce po jego prawej stronie.

W liczbie 352 cyfra 3 jest warta 300, cyfra 5 jest warta 50, a cyfra 2 jest warta 2. Miejsca mają wartości 1, 10, 100, licząc od prawej.

Systemy liczbowe: jak rozwiązywać zadania krok po kroku?

Pozycyjne systemy liczbowe: każda cyfra jest warta swoją wartość razy potęgę podstawy. W systemie dwójkowym pozycje są warte 1, 2, 4, 8, 16, …, w szesnastkowym 1, 16, 256, …, a A–F oznaczają 10–15. W 8-bitowym kodzie uzupełnień do dwóch skrajny lewy bit jest wart −128 zamiast +128; tak zapisuje się liczby ujemne.

Systemy liczbowe: co ćwiczysz?
  • Łatwy: z dwójkowego i szesnastkowego na dziesiętny
  • Średni: kod uzupełnień do dwóch
  • Trudny: bity, zakresy i pamięć

Każde zadanie ma nowe wartości, więc uczysz się metody, a nie odpowiedzi. Utknąłeś? Najpierw otwórz małą podpowiedź, a pełne wyjaśnienie dopiero wtedy, gdy go potrzebujesz.

Jak wygląda ćwiczenie

  • Każde zadanie ma nowe wartości, więc uczysz się metody, a nie odpowiedzi.
  • Utknąłeś? Najpierw otwórz małą podpowiedź, a pełne wyjaśnienie dopiero wtedy, gdy go potrzebujesz.
  • Twoje postępy, błędy i zapisane zadania są zachowywane, więc możesz je powtórzyć przed egzaminem.

Tematy przed tym i po nim

Potem przejdź do

Kalkulatory

Przedmioty z tym tematem

Więcej tematów: Informatyka

Karta pracy do druku