INF.02 · pytanie 163
Liczba heksadecymalna 1E2F(16) zapisana w systemie oktalnym ma postać
- A74274
- B7727
- C7277
- D17057Poprawna
Wyjaśnienie
Odpowiedź 17057 jest poprawna, bo liczba 1E2F₁₆ po przeliczeniu na system ósemkowy daje właśnie 17057₈. Najwygodniejsza metoda to przejście przez zapis binarny, a nie liczenie wszystkiego na piechotę w systemie dziesiętnym. Każda cyfra szesnastkowa odpowiada dokładnie 4 bitom: 1 = 0001, E = 1110, 2 = 0010, F = 1111. Otrzymujemy więc 0001 1110 0010 1111₂. System oktalny grupuje bity po 3, dlatego dopisujemy z lewej zera, żeby liczba bitów pasowała do pełnych trójek: 000 001 111 000 101 111₂. Te grupy dają cyfry ósemkowe: 0, 1, 7, 0, 5, 7, a po pominięciu zera wiodącego wychodzi 17057₈. Można to też sprawdzić przez system dziesiętny: 1·16³ + 14·16² + 2·16 + 15 = 7727₁₀, a 17057₈ = 1·8⁴ + 7·8³ + 0·8² + 5·8 + 7 = 7727₁₀. W praktyce takie konwersje spotyka się przy analizie zrzutów pamięci, adresów, kodów maszynowych, uprawnień w systemach Unix/Linux czy konfiguracjach niskopoziomowych. Moim zdaniem dobra praktyka to zawsze dopisywać podstawę systemu, np. 1E2F₁₆ albo 17057₈, bo sama liczba bez oznaczenia potrafi nieźle namieszać.