Liczba 5638 zapisana w systemie szesnastkowym to
Liczba 563₈ po przeliczeniu na system szesnastkowy daje 173₁₆. Najwygodniej zrobić to przez system binarny, bo ósemkowy i szesnastkowy są mocno powiązane z potęgami dwójki. Każdą cyfrę ósemkową zapisujemy jako 3 bity: 5₈ = 101₂, 6₈ = 110₂, 3₈ = 011₂. Dostajemy więc 101110011₂. Teraz grupujemy bity od prawej strony po 4, czyli w tak zwane nibble: 0001 0111 0011. Te grupy to kolejno 1, 7 i 3 w systemie szesnastkowym, więc wynik to 173₁₆. Można też sprawdzić przez dziesiętny: 5·8² + 6·8¹ + 3·8⁰ = 371₁₀, a 371₁₀ = 173₁₆. Moim zdaniem metoda przez bity jest szybsza i mniej podatna na głupie pomyłki. W praktyce takie konwersje spotyka się przy analizie uprawnień w Linuxie, adresów pamięci, zrzutów binarnych, masek bitowych i dokumentacji niskopoziomowej. Dobra praktyka branżowa jest prosta: zawsze zapisuj podstawę liczby, np. 563₈ albo 0x173, bo samo 173 bez oznaczenia może znaczyć coś zupełnie innego.
W tym zadaniu łatwo pomylić zapis liczby z jej wartością, bo cyfry wyglądają zwyczajnie, ale podstawa systemu całkowicie zmienia znaczenie. Wyniki takie jak 317, 371 czy 713 zwykle biorą się z przestawienia cyfr, z niedokładnego grupowania bitów albo z potraktowania liczby 563₈ tak, jakby była już liczbą dziesiętną. To jest typowy błąd: ktoś liczy coś w pamięci, widzi po drodze 371 i uznaje, że to wynik końcowy, a tak naprawdę 371 to wartość dziesiętna liczby 563₈, nie zapis szesnastkowy. W systemie pozycyjnym nie wolno ignorować podstawy, bo 563₈ oznacza 5·8² + 6·8¹ + 3·8⁰, czyli 371₁₀. Dopiero tę wartość trzeba przedstawić w bazie 16. Jeszcze lepsza technicznie metoda to konwersja przez zapis binarny: 5, 6 i 3 jako cyfry ósemkowe zamieniają się na grupy 101, 110 i 011. Po połączeniu mamy 101110011₂. Następnie od prawej strony robimy grupy po cztery bity: 0001 0111 0011. To daje 173₁₆, a nie układy typu 317 lub 713. Takie pomyłki są szczególnie groźne w administracji systemami i programowaniu niskopoziomowym, bo jedna źle odczytana wartość może oznaczać inne uprawnienia pliku, inny adres lub inną maskę bitową. Z mojego doświadczenia najlepiej zawsze dopisywać indeks podstawy albo prefiks, np. 0x dla szesnastkowego, bo wtedy mniej rzeczy robi się na oko.