Liczba 3478 zapisana w systemie szesnastkowym to
A. D7
B. 1E7
C. E7
D. 7E
Liczba 347₈ zapisana w systemie szesnastkowym to E7₁₆. Najwygodniej zrobić to przez system binarny, bo jedna cyfra ósemkowa odpowiada dokładnie 3 bitom, a jedna cyfra szesnastkowa dokładnie 4 bitom. Zamieniamy więc: 3₈ = 011₂, 4₈ = 100₂, 7₈ = 111₂. Razem daje to 011100111₂. Teraz grupujemy bity od prawej strony po 4: 1110 0111, czyli E7₁₆, bo 1110₂ to E₁₆, a 0111₂ to 7₁₆. Można też policzyć przez system dziesiętny: 3 × 8² + 4 × 8¹ + 7 = 231, a 231₁₀ = E7₁₆. Moim zdaniem metoda przez bity jest szybsza i mniej podatna na pomyłki, szczególnie w technice komputerowej. Takie konwersje przydają się przy analizie adresów, masek bitowych, kodów błędów, uprawnień w systemach Unix/Linux czy danych zapisanych w dokumentacji sprzętowej. Dobrą praktyką branżową jest zawsze dopisywać podstawę systemu, np. 347₈ albo E7₁₆, bo sama liczba bez oznaczenia może być niejednoznaczna.
Jeżeli wyszedł inny wynik niż E7₁₆, to najczęściej problem leży nie w samym liczeniu, tylko w pomieszaniu zasad systemów pozycyjnych. W zapisie ósemkowym każda pozycja ma wagę będącą potęgą liczby 8, więc 347₈ nie oznacza trzystu czterdziestu siedmiu w sensie dziesiętnym. To jest 3 × 8² + 4 × 8¹ + 7 × 8⁰, czyli 231₁₀. Dopiero tę wartość można przedstawić w systemie szesnastkowym jako E7₁₆. Wynik 7E zwykle bierze się z odwrócenia kolejności grup bitów albo z czytania zapisu od złej strony. Bity grupuje się od prawej, ale kolejności grup potem nie odwracamy dowolnie. Zapis D7 sugeruje, że ktoś źle przeliczył grupę 1110₂, bo 1110₂ to 14₁₀, a w systemie szesnastkowym 14 zapisuje się jako E, nie D. Litera D oznacza 13. Wariant 1E7 wygląda tak, jakby dodano nadmiarową grupę bitów z przodu albo potraktowano liczbę ósemkową jak większą wartość niż jest naprawdę. Z mojego doświadczenia najbezpieczniej jest rozpisać każdą cyfrę ósemkową na dokładnie 3 bity: 3 → 011, 4 → 100, 7 → 111. Potem dokładamy ewentualne zera z lewej tylko po to, żeby uzyskać pełne grupy po 4 bity. To jest normalna praktyka przy pracy z niskopoziomowymi danymi, np. rejestrami procesora, maskami uprawnień albo analizą zrzutów pamięci. Mała pomyłka w jednej grupie bitów daje zupełnie inny zapis szesnastkowy, więc warto kontrolować każdy etap, nawet jeśli przykład wydaje się prosty.