问题
What does a 0x
prefix on a number mean?
const int shared_segment_size = 0x6400;
It\'s from a C program. I can\'t recall what it amounts to and particularly what the letter x
means.
回答1:
Literals that start with 0x
are hexadecimal integers. (base 16)
The number 0x6400
is 25600
.
6 * 16^3 + 4 * 16^2 = 25600
For an example including letters (also used in hexadecimal notation where A = 10, B = 11 ... F = 15)
The number 0x6BF0
is 27632
.
6 * 16^3 + 11 * 16^2 + 15 * 16^1 = 27632
24576 + 2816 + 240 = 27632
回答2:
In C and languages based on the C syntax, the prefix 0x
means hexadecimal (base 16).
Thus, 0x400 = 4×(162) + 0×(161) + 0×(160) = 4×((24)2) = 22 × 28 = 210 = 1024, or one binary K.
And so 0x6400 = 0x4000 + 0x2400 = 0x19×0x400 = 25K
Cheers & hth.,
回答3:
It's a hexadecimal number.
0x6400 translates to 4*16^2 + 6*16^3 = 25600
回答4:
The numbers starting with 0x
are hexadecimal (base 16).0x6400
represents 25600
.
To convert,
- multiply the last digit times 1
- add second-last digit times 16 (16^1)
- add third-last digit times 256 (16^2)
- add fourth-last digit times 4096 (16^3)
- ...and so on
The factors 1, 16, 256, etc. are the increasing powers of 16.
0x6400 = (0*1) + (0*16^1) + (4*16^2) + (6*16^3) = 25600
or
0x6400 = (0*1) + (0*16) + (4*256) + (6*4096) = 25600
回答5:
SIMPLE
It's a prefix to indicate the number is in hexadecimal rather than in some other base. The C programming language uses it to tell compiler.
Example :
0x6400
translates to 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
When compiler reads 0x6400
, It understands the number is hexadecimal with the help of 0x term. Usually we can understand by (6400)16 or (6400)8
or any base ..
Hope Helped in some way.
Good day,
来源:https://stackoverflow.com/questions/8186965/what-do-numbers-using-0x-notation-mean