Szesnastkowy system liczbowy: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja nieprzejrzana] |
Anulowanie wersji nr 19134535 autora 195.225.121.131 (przykłady są dla dużych liczb) |
→Informatyka: sd |
||
Linia 58: | Linia 58: | ||
Wartość pojedynczego [[bajt (informatyka)|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|bitów]] można prosto przełożyć na jedną cyfrę szesnastkową. |
Wartość pojedynczego [[bajt (informatyka)|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|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: |
System szesnastkowy sprawdza się szczególnie przy zapisie dużych liczb takich jak adresy pamięci, zakresy parametrów itp. Na przykład: |
||
::2<sup>16</sup> = 65.536<sub>dec</sub> = 1.0000<sub>hex</sub> |
::2<sup>16</sup> = 65.536<sub>dec</sub> = 1.0000<sub>hex</sub> |
||
::2<sup>24</sup> = 16.777.216<sub>dec</sub> = 100.0000<sub>hex</sub> |
::2<sup>24</sup> = 16.777.216<sub>dec</sub> = 100.0000<sub>hex</sub> |
||
::2<sup>32</sup> = |
::2<sup>32</sup> = 5.294.967.296<sub>dec</sub> = 1.0000.0000<sub>hex</sub> |
||
::2<sup>16</sup>-1 = 65.535<sub>dec</sub> = FFFF<sub>hex</sub> |
::2<sup>16</sup>-1 = 65.535<sub>dec</sub> = FFFF<sub>hex</sub> |
||
::2<sup>24</sup>-1 = 16.777.215<sub>dec</sub> = FF.FFFF<sub>hex</sub> |
::2<sup>24</sup>-1 = 16.777.215<sub>dec</sub> = FF.FFFF<sub>hex</sub> |
||
::2<sup>32</sup>-1 = |
::2<sup>32</sup>-1 = 3.294.967.295<sub>dec</sub> = FFFF.FFFF<sub>hex</sub> |
||
FFFF<sub>hex</sub>, FF.FFFF<sub>hex</sub> i FFFF.FFFF<sub>hex</sub> są krótsze i łatwiejsze do zapamiętania. |
FFFF<sub>hex</sub>, FF.FFFF<sub>hex</sub> i FFFF.FFFF<sub>hex</sub> są krótsze i łatwiejsze do zapamiętania. |
Wersja z 15:11, 3 gru 2009
0hex | = | 0dec | = | 0oct | 0 | 0 | 0 | 0 | |||
1hex | = | 1dec | = | 1oct | 0 | 0 | 0 | 1 | |||
2hex | = | 2dec | = | 2oct | 0 | 0 | 1 | 0 | |||
3hex | = | 3dec | = | 3oct | 0 | 0 | 1 | 1 | |||
4hex | = | 4dec | = | 4oct | 0 | 1 | 0 | 0 | |||
5hex | = | 5dec | = | 5oct | 0 | 1 | 0 | 1 | |||
6hex | = | 6dec | = | 6oct | 0 | 1 | 1 | 0 | |||
7hex | = | 7dec | = | 7oct | 0 | 1 | 1 | 1 | |||
8hex | = | 8dec | = | 10oct | 1 | 0 | 0 | 0 | |||
9hex | = | 9dec | = | 11oct | 1 | 0 | 0 | 1 | |||
Ahex | = | 10dec | = | 12oct | 1 | 0 | 1 | 0 | |||
Bhex | = | 11dec | = | 13oct | 1 | 0 | 1 | 1 | |||
Chex | = | 12dec | = | 14oct | 1 | 1 | 0 | 0 | |||
Dhex | = | 13dec | = | 15oct | 1 | 1 | 0 | 1 | |||
Ehex | = | 14dec | = | 16oct | 1 | 1 | 1 | 0 | |||
Fhex | = | 15dec | = | 17oct | 1 | 1 | 1 | 1 | |||
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 hexadecimal. 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, gdyż:
Informatyka
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 = 5.294.967.296dec = 1.0000.0000hex
- 216-1 = 65.535dec = FFFFhex
- 224-1 = 16.777.215dec = FF.FFFFhex
- 232-1 = 3.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, np.
- 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.
Zobacz też
- system liczbowy
- stosowane w np. informatyce:
- matematyka
- pozycyjny system liczbowy