Cosa significa un 0x
prefisso su un numero?
const int shared_segment_size = 0x6400;
Viene da un programma C. Non riesco a ricordare cosa significhi e in particolare cosa x
significhi la lettera .
0x prefix C++
ti porta qui ora :)
Cosa significa un 0x
prefisso su un numero?
const int shared_segment_size = 0x6400;
Viene da un programma C. Non riesco a ricordare cosa significhi e in particolare cosa x
significhi la lettera .
0x prefix C++
ti porta qui ora :)
Risposte:
I valori letterali che iniziano con 0x
sono numeri interi esadecimali. (base 16)
Il numero 0x6400
è 25600
.
6 * 16^3 + 4 * 16^2 = 25600
Per un esempio che include lettere (utilizzato anche in notazione esadecimale dove A = 10, B = 11 ... F = 15)
Il numero 0x6BF0
è 27632
.
6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576 + 2816 + 240 = 27632
0xffffffff
e così. ( 0xffffffff = -1
per int a 32 bit assumendo il complemento di 2)
In C e nei linguaggi basati sulla sintassi C, il prefisso 0x
significa esadecimale (base 16).
Quindi, 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024, o un K binario .
Quindi 0x6400 = 0x4000 + 0x2400 = 0x19 × 0x400 = 25K
I numeri che iniziano con 0x
sono esadecimali (base 16). 0x6400
rappresenta25600
.
Convertire,
I fattori 1, 16, 256, ecc. Sono le potenze crescenti di 16.
0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600
o
0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600
SEMPLICE
È un prefisso per indicare che il numero è in esadecimale piuttosto che in qualche altra base. Il linguaggio di programmazione C lo usa per dire al compilatore.
Esempio :
0x6400
si traduce in 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
Quando il compilatore legge 0x6400
, Capisce che il numero è esadecimale con l'aiuto del termine 0x. Di solito possiamo capire da (6400)16 or (6400)8
o qualsiasi base ..
La speranza ha aiutato in qualche modo.
Buona giornata,