Liczby szesnastkowe, często skracane do „liczb heksadecymalnych” lub „heksadecymalnych”, są liczbami reprezentowanymi w podstawie 16, w przeciwieństwie do podstawy 10, której używamy w codziennej arytmetyce i liczeniu.
W praktyce oznacza to, że każda kolumna liczby zapisanej w systemie szesnastkowym może reprezentować do 16 wartości.
W programowaniu, przedrostki stałych szesnastkowych poprzedzamy 0x
, z pewnymi wyjątkami.
Przykłady i wyjaśnienia
0x1 == 10xF == 150xFF == 2550xFFF == 40950x1000 == 4096
W standardowym systemie bazowym 10, każda kolumna reprezentuje rosnące potęgi 10, podczas gdy w systemie bazowym 16 każda kolumna reprezentuje rosnące potęgi 16.
Jak widać w przykładzie tabeli powyżej, z jedną cyfrą heksadecymalną możemy reprezentować liczby do 15 włącznie. Dodając kolejną kolumnę możemy reprezentować liczby do 255, 4095 z kolejną kolumną, i tak dalej.
Usługi szesnastkowego w programowaniu niskiego poziomu
Szesnastkowy po raz pierwszy znalazł swoje zastosowanie w informatyce jako udogodnienie.
Dane w naszych komputerach mają najniższą wspólną jednostkę przechowywania, bajt. Każdy bajt zawiera 8 bitów i jest w stanie przechowywać liczbę od 0 do 255 włącznie.
Szesnastkowy ma tę zaletę, że jest zwięzły i ma dobrze zdefiniowane granice.
Pojedynczy bajt jest zawsze reprezentowany przez dwie cyfry szesnastkowe z zakresu od 0x00 do 0xFF, przy czym ta ostatnia jest największą wartością na bajt równą 255.
Krótkość i wyrównana do bajtu natura liczb szesnastkowych czyni je popularnym wyborem dla inżynierów oprogramowania pracujących nad niskopoziomowymi bazami kodów lub oprogramowaniem wbudowanym.
Użycia liczb szesnastkowych w JavaScript
JavaScript wspiera użycie notacji szesnastkowej w miejsce dowolnej liczby całkowitej, ale nie dziesiętnej.
Jako przykład, liczba 2514 w zapisie szesnastkowym to 0x9D2, ale nie ma wspieranego przez język sposobu reprezentowania 25.14 jako liczby szesnastkowej.
Używanie liczby szesnastkowej w twoim kodzie jest osobistym i stylistycznym wyborem, i nie ma wpływu na podstawową logikę, którą twój kod implementuje.
Usługi liczb szesnastkowych w CSS
CSS przez długi czas używał notacji szesnastkowej do reprezentowania wartości kolorów. Rozważmy następujący selektor:
.my-container { background-color: #112233; color: #FFFFFF;}
Wartość background-color
jest w rzeczywistości trzema bajtami heksadecymalnymi.
Procesor CSS traktuje je jako trzy pojedyncze bajty, reprezentujące kolor czerwony, zielony i niebieski.
W naszym przykładzie, 11 odpowiada składowej czerwonej koloru, 22 odpowiada składowej zielonej koloru, a 33 składowej niebieskiej koloru.
Obecnie w CSS3 nie ma sposobu na zdefiniowanie koloru ze składową alfa przy użyciu heksadecymalnej. Proponowany CSS4 Draft1 zawiera propozycję, aby umożliwić dodatkowy bajt do określenia wartości alfa.
Na razie użycie standardowej funkcji rgba()
jest zalecanym sposobem dodania wartości alfa do kolorów.