Szesnastkowy system liczbowy
Z Wikipedii
Szesn. |
||
00000 |
00 |
|
00001 |
01 |
|
00010 |
02 |
|
00011 |
03 |
|
00100 |
04 |
|
00101 |
05 |
|
00110 |
06 |
|
00111 |
07 |
|
01000 |
08 |
|
01001 |
09 |
|
01010 |
0A |
|
01011 |
0B |
|
01100 |
0C |
|
01101 |
0D |
|
01110 |
0E |
|
01111 |
0F |
|
10000 |
10 |
|
10001 |
11 |
|
10010 |
12 |
|
10011 |
13 |
Szesnastkowy system liczbowy - pozycyjny system liczbowy, w którym podstawą pozycji są kolejne potęgi liczby 16. Często system szesnastkowy jest określany nazwą Hex od słowa stworzonego przez firmę IBM hexadecimal. Początkowo chciano używać łacińskiego sexa zamiast hexa, ale niejednoznacznie się to kojarzyło. Do zapisu liczb 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.
Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się tu jako ciągi cyfr, z których każda jest mnożnikiem kolejnej potęgi liczby stanowiącej podstawę systemu, np. liczba zapisana w dziesiętnym systemie liczbowym jako 1000, w hex przybiera postać 3E8, gdyż:
3×162 + 14×161 + 8×160 = 768 + 224 + 8 = 1000.
Hex jest powszechnie używany w informatyce, ponieważ wartość pojedynczego bajtu można opisać używając tylko dwóch cyfr szesnastkowych. W ten sposób można kolejne bajty łatwo przedstawić w postaci ciągu liczb hex. Jednocześnie zapis 4 bitów można łatwo przełożyć na jedną cyfrę hex. Przykładowy ciąg liczb w czterech systemach liczbowych przedstawiono w Tabeli 1.
W matematyce liczby w systemach niedziesiętnych oznacza się czasami indeksem dolnym zapisanym w systemie dziesiętnym, a oznaczającym podstawę pozycji danego systemu. W celu podkreślenia, że liczba jest dziesiętna, można również napisać obok niej indeks, np. 1016 = 1610. Konwencja ta nie jest używana w informatyce. W różnych językach programowania zapis hexa wygląda inaczej:
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. Sprawdza się on szczególnie przy zapisie dużych liczb takich jak adresy pamięci, zakresy parametrów itp. Dla przykładu:
216 = 65.536dec = 1.0000hex
224 = 16.777.216dec = 100.0000hex
232 = 4.294.967.296dec = 1.0000.000016
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
wartość |
cyfra |
wartość |
0 |
0 |
0000 |
1 |
1 |
0001 |
2 |
2 |
0010 |
3 |
3 |
0011 |
4 |
4 |
0100 |
5 |
5 |
0101 |
6 |
6 |
0110 |
7 |
7 |
0111 |
8 |
8 |
1000 |
9 |
9 |
1001 |
10 |
A |
1010 |
11 |
B |
1011 |
12 |
C |
1100 |
13 |
D |
1101 |
14 |
E |
1110 |
15 |
F |
1111 |