Co oznacza 0x
prefiks w liczbie?
const int shared_segment_size = 0x6400;
Pochodzi z programu w C. Nie mogę sobie przypomnieć, co to oznacza, a zwłaszcza co x
oznacza ten list .
0x prefix C++
prowadzi cię tutaj teraz :)
Co oznacza 0x
prefiks w liczbie?
const int shared_segment_size = 0x6400;
Pochodzi z programu w C. Nie mogę sobie przypomnieć, co to oznacza, a zwłaszcza co x
oznacza ten list .
0x prefix C++
prowadzi cię tutaj teraz :)
Odpowiedzi:
Literały rozpoczynające się od 0x
to szesnastkowe liczby całkowite. (podstawa 16)
Liczba 0x6400
to 25600
.
6 * 16^3 + 4 * 16^2 = 25600
Na przykład zawierający 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
0xffffffff
i takie. ( 0xffffffff = -1
dla 32-bitowego int przy założeniu uzupełnienia 2)
W języku C i językach opartych na składni C przedrostek 0x
oznacza szesnastkowy (podstawa 16).
Zatem 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024 lub jedno binarne K .
A więc 0x6400 = 0x4000 + 0x2400 = 0x19 × 0x400 = 25K
Liczby zaczynające się od 0x
są szesnastkowe (podstawa 16). 0x6400
reprezentuje 25600
.
Przekonwertować na,
Czynniki 1, 16, 256 itd. To rosnące potęgi 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
PROSTY
Jest to przedrostek wskazujący, że liczba jest zapisana w systemie szesnastkowym, a nie w innej bazie. Język programowania C używa go do informowania kompilatora.
Przykład:
0x6400
tłumaczy się na 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
Kiedy kompilator czyta 0x6400
, rozumie, że liczba jest szesnastkowa za pomocą terminu 0x. Zwykle możemy zrozumieć przez (6400)16 or (6400)8
lub jakąkolwiek podstawę.
Nadzieja pomogła w jakiś sposób.
Dobry dzień,