Przejdź do głównej treści
  1. Strona główna
  2. Technik informatyk
  3. INF.02
  4. Pytanie

Kwalifikacja: INF.02 - Administracja i eksploatacja systemów komputerowych, urządzeń peryferyjnych i lokalnych sieci komputerowych

Zawód: Technik informatyk

Kategorie: Sprzęt komputerowy Podstawy informatyki

W jednostce ALU do rejestru akumulatora wprowadzono liczbę dziesiętną 500. Jak wygląda jej reprezentacja w systemie binarnym?

Liczba 500₁₀ ma reprezentację binarną 111110100₂, ponieważ rozkłada się na sumę potęg dwójki: 500 = 256 + 128 + 64 + 32 + 16 + 4, czyli 2⁸ + 2⁷ + 2⁶ + 2⁵ + 2⁴ + 2². Dla pozycji od 2⁸ do 2⁰ dostajemy więc bity: 1 1 1 1 1 0 1 0 0. Po złączeniu wychodzi dokładnie 111110100. W praktyce tak właśnie myśli procesor, ALU i rejestry: dane są przechowywane jako ciągi bitów, a ich znaczenie zależy od przyjętej interpretacji, np. liczba bez znaku, liczba ze znakiem w kodzie uzupełnień do dwóch albo fragment instrukcji maszynowej. Moim zdaniem warto też pamiętać o szerokości rejestru. Sama postać 111110100 ma 9 bitów, więc jako liczba bez znaku nie zmieści się w 8-bitowym akumulatorze, bo tam maksimum to 255. W rejestrze 16-bitowym ta sama wartość byłaby zapisana z zerami z przodu jako 0000000111110100. To jest dobra praktyka branżowa: zawsze określać podstawę systemu liczbowego oraz liczbę bitów, bo bez tego łatwo o pomyłkę przy diagnostyce, programowaniu niskopoziomowym czy analizie zawartości pamięci.
Przy zamianie liczby dziesiętnej na binarną najczęstszy problem polega na tym, że patrzy się na sam wygląd ciągu bitów, a nie na wartości pozycyjne. W systemie binarnym każda pozycja ma wagę będącą potęgą dwójki: 2⁰, 2¹, 2² i tak dalej. Dla liczby 500 trzeba zacząć od największej potęgi dwójki, która się mieści, czyli 256. Potem kolejno sprawdzamy 128, 64, 32, 16, 8, 4, 2 i 1. Otrzymujemy składniki 256 + 128 + 64 + 32 + 16 + 4, więc zapis bitowy to 111110100₂.

Ciąg 110110000₂ daje wartość 432, bo odpowiada sumie 256 + 128 + 32 + 16. Widać tu typową pomyłkę: część wag została pominięta, szczególnie 64 i 4. Zapis 111011000₂ oznacza 472, czyli nadal brakuje do 500; prawdopodobnie ktoś źle rozłożył liczbę po dojściu do potęgi 64 albo przesunął bity o jedną pozycję. Natomiast 111111101₂ to 509, a więc wartość za duża, bo ustawiono zbyt wiele bitów, w tym najmłodszy bit o wadze 1. Z mojego doświadczenia najlepiej po konwersji zawsze zrobić szybkie sprawdzenie w drugą stronę, czyli zsumować wagi ustawionych jedynek. To prosta, ale bardzo skuteczna metoda, używana też przy analizie rejestrów, masek bitowych i adresowania w systemach komputerowych.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.