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

Wskaż poprawny zapis liczby −12(10) metodą znak-moduł do postaci ośmiobitowej liczby dwójkowej.

Odpowiedź 10001100₍zm₎ jest poprawna, bo w metodzie znak-moduł najstarszy bit, czyli pierwszy z lewej, oznacza znak liczby, a pozostałe bity zapisują wartość bezwzględną liczby. Dla liczby −12₍₁₀₎ znak jest ujemny, więc bit znaku musi mieć wartość 1. Następnie zapisujemy moduł, czyli samo 12. W systemie dwójkowym 12₍₁₀₎ = 1100₂, ponieważ 12 = 8 + 4. Ponieważ ma to być liczba ośmiobitowa, zostaje 7 bitów na moduł: 0001100. Po dołączeniu bitu znaku dostajemy 1 0001100, czyli 10001100₍zm₎. W praktyce takie rozróżnienie jest ważne przy analizie niskopoziomowej reprezentacji danych, np. w architekturze komputerów, asemblerze albo podczas omawiania sposobów kodowania liczb całkowitych. Moim zdaniem warto tu zawsze najpierw oddzielić znak od wartości, bo wtedy nie myli się znak-moduł z kodem U2. W branży przy dokumentowaniu formatów danych dobra praktyka jest taka, żeby jasno podać liczbę bitów oraz metodę kodowania, bo ten sam ciąg 10001100 może znaczyć coś zupełnie innego w różnych reprezentacjach.
W tym zadaniu kluczowe jest to, że chodzi o zapis ośmiobitowy metodą znak-moduł, a nie o zwykłe dopisanie znaku minus przed liczbą ani o zapis ułamkowy. W metodzie znak-moduł pierwszy bit od lewej jest bitem znaku: 0 oznacza liczbę dodatnią, a 1 oznacza liczbę ujemną. Pozostałe 7 bitów przechowuje moduł, czyli wartość bezwzględną liczby. Dla −12₍₁₀₎ modułem jest 12, a 12 w systemie binarnym to 1100₂. Po uzupełnieniu do 7 bitów mamy 0001100, więc cały zapis powinien wyglądać jako 10001100₍zm₎. Zapis 00001100₍zm₎ opisuje dodatnie 12, bo bit znaku ma tam wartość 0. To bardzo typowa pomyłka: ktoś poprawnie zamienia 12 na binarnie, ale zapomina, że liczba w treści jest ujemna. Z kolei formy typu +1.11000₍zm₎ oraz −1.11000₍zm₎ nie pasują do wymogu ośmiobitowej liczby całkowitej w tej reprezentacji. Wyglądają bardziej jak zapis z częścią ułamkową albo zapis z wyraźnym znakiem poza ciągiem bitów, a tutaj znak ma być zakodowany jako bit, nie jako symbol + lub −. Z mojego doświadczenia najlepiej przy takich zadaniach zrobić trzy kroki: ustalić znak, zamienić wartość bezwzględną na dwójkową, a potem dopełnić zerami do wymaganej długości. Warto też pamiętać, że znak-moduł to nie to samo co kod U2, używany powszechnie w procesorach do działań arytmetycznych. W U2 wynik dla −12 byłby inny, więc mieszanie tych metod prowadzi do błędnych odpowiedzi, nawet jeśli sama konwersja dziesiętna na binarną jest dobrze zrobiona.

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.