Której liczbie dziesiętnej odpowiada liczba FF zapisana w systemie szesnastkowym?
A. 250
B. 248
C. 254
D. 255
Pytanie z egzaminu CKE, październik 2013 (arkusz E.12-X-13.10).
Liczba FF₁₆ odpowiada wartości 255₁₀, bo w systemie szesnastkowym każda cyfra może mieć wartość od 0 do 15. Litera F oznacza właśnie 15. Przy dwóch znakach liczymy pozycje tak jak w systemie dziesiętnym, tylko podstawą jest 16, a nie 10. Czyli FF₁₆ = 15 × 16¹ + 15 × 16⁰ = 240 + 15 = 255. To jest bardzo praktyczna wiedza, nie tylko szkolna teoria. W informatyce 0xFF często oznacza bajt, w którym wszystkie 8 bitów ma wartość 1, czyli 11111111₂. Taki zapis spotkasz np. w maskach bitowych, kolorach RGB, adresach MAC, IPv6 czy przy analizie danych binarnych w edytorze hex. Moim zdaniem warto od razu zapamiętać, że FF to maksymalna wartość jednego bajtu bez znaku. Dobra praktyka branżowa to zawsze jasno oznaczać podstawę systemu, np. FF₁₆, 0xFF albo 255₁₀, bo sama liczba bez kontekstu potrafi narobić zamieszania.
W tym zadaniu łatwo pomylić się o kilka jednostek, bo zapis szesnastkowy wygląda trochę jak zwykła liczba z literami, ale działa według konkretnych reguł pozycyjnych. W systemie hex litery A, B, C, D, E, F oznaczają kolejno wartości 10, 11, 12, 13, 14 i 15. Nie wolno traktować F jako 16, bo 16 to już podstawa systemu, a pojedyncza cyfra w danym systemie zawsze musi być mniejsza od podstawy. Dlatego FF₁₆ to nie jest 16 + 16 ani jakaś wartość zaokrąglona do 250. Trzeba uwzględnić wagę pozycji: lewy znak F stoi na pozycji szesnastek, więc daje 15 × 16 = 240, a prawy znak F stoi na pozycji jedności, więc daje 15. Razem wychodzi 255. Wynik 254 pasowałby bardziej do FE₁₆, bo E ma wartość 14, czyli 240 + 14. Wartości 248 i 250 zwykle biorą się z liczenia „na oko” albo z pomieszania systemu binarnego, dziesiętnego i szesnastkowego. Z mojego doświadczenia najlepiej zawsze rozpisać pozycje, nawet przy prostym przykładzie, bo potem ta sama zasada działa przy większych liczbach, adresach MAC, kolorach typu #FFFFFF czy danych oglądanych w debuggerze. W praktyce technicznej nie chodzi tylko o poprawny wynik, ale też o pewność, w jakim systemie liczbowym pracujemy.