W modelu RGB, w systemie szesnastkowym, kolor jest zapisany następująco: ABCDEF. Natężenie koloru niebieskiego w tym zapisie ma wartość dziesiętną
A. 186
B. 239
C. 171
D. 205
Pytanie z egzaminu CKE, październik 2013 (arkusz E.12-X-13.10).
W zapisie RGB w systemie szesnastkowym kolor #ABCDEF dzieli się zawsze na trzy pary znaków: AB, CD i EF. To jest standardowy zapis używany m.in. w HTML, CSS, programach graficznych i edytorach kolorów. Pierwsza para oznacza składową czerwoną R, druga zieloną G, a trzecia niebieską B. Dlatego dla koloru ABCDEF natężenie koloru niebieskiego to EF₁₆. Przeliczenie na system dziesiętny wygląda tak: E w systemie szesnastkowym ma wartość 14, a F ma wartość 15, więc 14 × 16 + 15 = 239. Moim zdaniem to jeden z tych tematów, który warto dobrze ogarnąć, bo wraca przy grafice komputerowej, stronach WWW i konfiguracji interfejsów. Dobra praktyka jest taka, żeby przy kolorach RGB zawsze czytać zapis parami od lewej do prawej: RR GG BB. Dzięki temu nie pomylisz kanałów i od razu wiesz, która część odpowiada za konkretną barwę.
W tym zadaniu najłatwiej pomylić samą wartość szesnastkową z konkretną składową koloru. Zapis ABCDEF nie jest jedną liczbą, z której trzeba jakoś losowo wybrać wynik, tylko standardowym zapisem koloru RGB w formacie RRGGBB. Oznacza to, że AB opisuje natężenie czerwieni, CD opisuje natężenie zieleni, a EF opisuje natężenie niebieskiego. Wartość 171 powstaje z przeliczenia AB₁₆ na system dziesiętny, więc dotyczy kanału czerwonego, nie niebieskiego. Wartość 205 to z kolei CD₁₆, czyli kanał zielony. Wynik 186 często bierze się z odwrócenia cyfr albo z przypadkowego skojarzenia wartości BA₁₆, ale w poprawnym zapisie RGB nie odwraca się par znaków. Kolejność bajtów ma znaczenie, szczególnie w grafice, CSS i aplikacjach webowych. Typowy błąd polega też na tym, że ktoś widzi litery A-F i traktuje je jak zwykłe znaki, a nie cyfry systemu o podstawie 16. W praktyce każda para znaków szesnastkowych daje wartość od 0 do 255, czyli dokładnie zakres jednego kanału koloru w klasycznym modelu 24-bit RGB. Dla kanału niebieskiego trzeba więc wziąć wyłącznie ostatnią parę EF i przeliczyć ją jako 14 × 16 + 15 = 239.