system szesnastkowy
TRANSCRIPT
Szesnastkowy system liczbowy (czasem nazywany heksadecymalnym, skrót hex) – pozycyjny system liczbowy, w którym podstawą jest liczba 16. Skrót hex pochodzi od angielskiej nazwy hexadecimalhexadecimal. Do zapisu liczb w tym systemie potrzebne jest szesnaście cyfr. Poza cyframi dziesiętnymi od 0 do 9 używa się pierwszych sześciu liter alfabetu łacińskiego: A, B, C, D, E, F (dużych lub małych).
Cyfry 0-9 mają te same wartości co w systemie dzięsiętnym, natomiast litery odpowiadają następującym wartościom: A = 10, B = 11, C = 12, D = 13, E = 14 oraz F = 15.
Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się tu jako ciągi znaków, z których każdy jest mnożnikiem kolejnej potęgi liczby stanowiącej podstawę systemu. Np. liczba zapisana w dziesiętnym systemie liczbowym jako 1000, w systemie szesnastkowym przybiera postać 3E8.
W praktyce najczęściej stosuje się szesnastkowy system liczbowy w informatyce.
Z racji budowy komputerów, w której np. adresy są potęgą liczby 2 oraz dzielą się przez 8 i 16, często stosowany jest system heksadecymalny.
Wartość pojedynczego bajta można opisać używając tylko dwóch cyfr szesnastkowych i odwrotnie - dowolne dwie cyfry szesnastkowe można zapisać jako bajt. W ten sposób kolejne bajty można łatwo przedstawić w postaci ciągu cyfr szesnastkowych. Jednocześnie zapis 4 bitów można prosto przełożyć na jedną cyfrę szesnastkową.
System szesnastkowy sprawdza się szczególnie przy zapisie dużych liczb takich jak adresy pamięci, zakresy parametrów itp. Na przykład:
•216 = 65.536dec = 1.0000hex
•224 = 16.777.216dec = 100.0000hex
•232 = 4.294.967.296dec = 1.0000.0000hex
•216-1 = 65.535dec = FFFFhex
•224-1 = 16.777.215dec = FF.FFFFhex
•232-1 = 4.294.967.295dec = FFFF.FFFFhex
FFFFhex, FF.FFFFhex i FFFF.FFFFhex są krótsze i łatwiejsze do zapamiętania.
W matematyce podstawę liczb zapisanych w systemach niedziesiętnych dopisuje się czasem w dolnym indeksie (zapisaną w systemie dziesiętnym). Konwencja ta nie jest używana w informatyce. W różnych językach programowania zapis liczb szesnastkowych wygląda rozmaicie:
C, C++, C#, Java - stosuje się prefiks 0x (zero oraz x) np. 0x102f, a w ciągach tekstowych \x, np. "\x2f"
W Javie można też stosować szesnastkowe liczby zmiennoprzecinkowe, oraz używać litery p jako wykładnika binarnego, analogicznie jak litera e używana jest w roli wykładnika dziesiętnego.
Pascal - stosuje się prefiks $, np. $102f
niektóre wersje asemblera - za liczbą litera h, np 102fh, lub podobnie jak w C prefix 0x
.
HTML - kolory RGB (Red - Czerwony, Green - Zielony, Blue - Niebieski) zapisuje się jako 3 liczby hex od 0 do FF(255) poprzedzone znakiem #, np. różowy - #FF8080, szary - #808080, czarny - #000000. Zapis ten dotyczy koloru 24-bitowego przypisywanego różnym elementom graficznym dokumentu HTML