Szesnastkowy system liczbowy: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Anulowanie wersji nr 19134535 autora 195.225.121.131 (przykłady są dla dużych liczb)
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> = 4.294.967.296<sub>dec</sub> = 1.0000.0000<sub>hex</sub>
::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 = 4.294.967.295<sub>dec</sub> = FFFF.FFFF<sub>hex</sub>
::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ż