Co oznaczają liczby w notacji 0x?
Co oznacza przedrostek 0x na liczbie?
const int shared_segment_size = 0x6400;
Pochodzi z programu C napisanego na Linuksie. Nie mogę sobie przypomnieć, co to znaczy, a w szczególności co oznacza litera x
.
5 answers
Literały rozpoczynające się od 0x
są liczbami szesnastkowymi. (base 16)
Liczba 0x6400
to 25600
.
6 * 16^3 + 4 * 16^2 = 25600
Dla przykładu zawierającego litery (używane również w notacji szesnastkowej, gdzie A= 10, B = 11 ... F = 15)
Liczba 0x6BF0
to 27632
.
6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576 + 2816 + 240 = 27632
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-11 23:15:32
W języku C i językach bazujących na składni C, przedrostek 0x
oznacza szesnastkowy (baza 16).
Tak więc, 0x400 = 4×(162) + 0×(161) + 0×(160) = 4×((24)2) = 22 × 28 = 210 = 1024, lub jeden binarny K.
I tak 0x6400 = 0x4000 + 0x2400 = 0x19×0x400 = 25k
Cheers & hth.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-18 18:21:20
Jest liczbą szesnastkową.
0x6400 4*16^2 + 6*16^3 = 25600
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-29 02:39:43
SIMPLE
Jest to prefiks, który wskazuje, że liczba jest w systemie szesnastkowym, a nie w innej bazie. Język programowania C używa go do określenia kompilatora.
Przykład:
0x6400
tłumaczy się na 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
gdy kompilator odczytuje 0x6400
, rozumie, że liczba jest szesnastkowa za pomocą wyrażenia 0x. Zwykle możemy zrozumieć przez (6400)16 or (6400)8
lub dowolną bazę ..
Dzień dobry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-05 05:56:46
Liczby rozpoczynające się od 0x
są szesnastkowe (baza 16).0x6400
reprezentuje 25600
.
Do konwersji,
- pomnóż ostatnią cyfrę razy 1
- dodaj drugą-ostatnią cyfrę razy 16 (16^1)
- dodaj trzecią-ostatnią cyfrę razy 256 (16^2)
- dodaj czwartą-ostatnią cyfrę razy 4096 (16^3)
- ...i tak dalej
Współczynniki 1, 16, 256 itd. są potęgami 16.
0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600
Lub
0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-04 16:46:37