KWALIFIKACJA INF2 - CZERWIEC 2019

PYTANIE NR 2.
Liczbą dziesiętną, która odpowiada liczbie 11110101(U2), jest
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
U2 oznacza kod uzupełnień do dwóch, czyli liczbę ze znakiem. W zapisie 8-bitowym 11110101 ma MSB=1, więc jest ujemna. Odwróć bity: 00001010, dodaj 1: 00001011, co daje 11. Zatem wartość dziesiętna wynosi -11.

Pełne wyjaśnienie:

Oznaczenie U2 (uzupełnienie do dwóch) mówi, że liczba binarna ma być interpretowana jako liczba całkowita ze znakiem w kodzie uzupełnień do dwóch. Ponieważ zapis ma 8 bitów, traktujemy go jak wartość 8-bitową (bajt). W takim zapisie najbardziej znaczący bit (MSB) jest bitem znaku: 0 oznacza liczbę dodatnią, a 1 – ujemną.

Dla 11110101 MSB=1, więc to liczba ujemna. Aby obliczyć jej wartość dziesiętną, stosuje się standardową procedurę dla U2:

  • Inwersja bitów (zamiana 0↔1): 11110101 → 00001010.
  • Dodanie 1: 00001010 + 1 = 00001011.
  • Odczyt wartości 00001011 w systemie dziesiętnym: to 11.
  • Nadanie znaku "minus", bo wyjściowo MSB=1: wynik to -11.

Dlaczego pozostałe odpowiedzi są błędne? Wartość 245 powstaje wtedy, gdy potraktuje się 11110101 jako liczbę bez znaku (unsigned) i zsumuje wagi bitów (128+64+32+16+4+1). To jednak stoi w sprzeczności z oznaczeniem U2. Odpowiedź -245 jest dodatkowo nielogiczna w kontekście 8-bitowego U2, bo taki zakres obejmuje tylko wartości od -128 do 127. Odpowiedź 11 ignoruje bit znaku i fakt, że w U2 MSB=1 oznacza liczbę ujemną.

W praktyce kod U2 jest powszechnie stosowany w procesorach i językach programowania do reprezentacji typów całkowitych ze znakiem, dlatego umiejętność takiej konwersji jest podstawą dalszych tematów (przepełnienia, operacje bitowe, interpretacja danych w bajtach).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Kod U2 to standardowy sposób zapisu liczb całkowitych ze znakiem w postaci binarnej. Umożliwia wygodne wykonywanie dodawania i odejmowania tych liczb w procesorze. Najstarszy bit jest bitem znaku, a liczby ujemne są zapisane w postaci uzupełnienia do dwóch.
W kodzie U2 o znaku decyduje najbardziej znaczący bit (MSB). Jeśli MSB=0, liczba jest dodatnia lub równa zero. Jeśli MSB=1, liczba jest ujemna i trzeba zastosować procedurę: inwersja bitów, dodanie 1, a potem nadanie znaku minus.
To zapis 8-bitowy, a MSB=1, więc liczba jest ujemna. Odwróć bity: 11110101 → 00001010. Dodaj 1: 00001010 + 1 = 00001011. Odczytaj 00001011 jako 11 w dziesiętnym i dodaj znak minus. Wynik: -11.
Jako unsigned sumujesz wagi bitów: 128+64+32+16+4+1=245. Jednak zapis (U2) wyraźnie narzuca interpretację ze znakiem (two’s complement). W U2 MSB=1 oznacza liczbę ujemną, więc nie wolno stosować interpretacji bez znaku.
W 8-bitowym U2 jest 1 bit znaku i 7 bitów wartości, więc zakres to od -128 do 127. Dzięki temu można kodować liczby dodatnie i ujemne w jednym bajcie. To ważne na egzaminie, bo pozwala szybko wyłapać nierealne wyniki.
Najczęściej tak: jeśli w zapisie binarnym widzisz dokładnie 8 cyfr, to jest to liczba 8-bitowa. Podanie długości słowa jest kluczowe w U2, bo wpływa na znak i zakres. W zadaniach egzaminacyjnych liczba zapisanych bitów zwykle definiuje długość.
Najczęstsze pomyłki to: potraktowanie U2 jako liczby bez znaku (wychodzi 245), wykonanie samej inwersji bez dodania 1, albo błędne sprawdzenie znaku (ignorowanie MSB). Warto zawsze zacząć od pytania: "MSB=0 czy 1?" i dopiero potem liczyć.
Kod U2 pojawia się w praktyce przy analizie danych na poziomie bajtów: w rejestrach CPU, w debugowaniu (wartości signed/unsigned), w sterownikach i systemach wbudowanych oraz przy interpretacji danych z sieci/urządzeń. Rozumienie U2 pomaga uniknąć błędów w typach całkowitych.
Szybka metoda to standardowa procedura: inwersja wszystkich bitów i dodanie 1. Otrzymasz wtedy wartość bezwzględną w postaci binarnej. Następnie zamieniasz ją na dziesiętną i dopisujesz minus. To najpewniejszy algorytm na egzaminie.
Tak, można użyć metody wag z ujemną wagą MSB: w 8 bitach MSB ma wagę -128, pozostałe dodatnie. Dla 11110101: -128+64+32+16+4+1 = -11. Ta metoda bywa szybsza, ale wymaga pewności co do długości słowa.
info

Statystycznie 42% uczniów zna prawidłową odpowiedź. trudne

Eksperci podkreślają: "U2 oznacza kod uzupełnień do dwóch, czyli liczbę ze znakiem."

Źródła:

  • Wikipedia: Two's complement (sekcja "Converting from two's complement representation") https://en.wikipedia.org/wiki/Two%27s_complement - accessed 2026-02-28
  • Wikipedia (PL): Uzupełnienie do dwóch https://pl.wikipedia.org/wiki/Uzupe%C5%82nienie_do_dw%C3%B3ch - accessed 2026-02-28
  • Khan Academy: Two's complement and negative numbers (Computer science) https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/two-s-complement - accessed 2026-02-28

Materiały:

  • Materiały do architektury komputerów: rozdział o reprezentacji liczb ze znakiem i kodzie U2
  • Kursy/wideo o typach całkowitych w systemach komputerowych (signed/unsigned)
  • Ćwiczenia: konwersja wielu 8-bitowych wartości U2 na dziesiętne oraz odwrotnie

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego