对此基本问题感到抱歉,但为什么0x11
为17
为(print(%d, 0x11)=17
?
我搜索有关从十六进制转换为十六进制的方式的信息,但它没有谈论这种数字。
答案 0 :(得分:10)
就像基数10中的“11”表示“1 10”和“1 1”一样,基数16中的“11”(即十六进制)表示“1 16”和“1 1” - 或基数10中的17。 / p>
答案 1 :(得分:4)
0x
表示编译器将其读取为十六进制。 0x11
= 1 * 16 + 1 = 17
答案 2 :(得分:4)
0x11 = 1 * 16 ^ 1 + 1 * 16 ^ 0 = 17.(如17 = 1 * 10 ^ 1 + 7 * 10 ^ 0。)
答案 3 :(得分:2)
0x11 = 1 * 16^1 (16)
+ 1 * 16^0 ( 1)
-----------------
0x11 (17)
就像:
17 = 1 * 10^1 (10)
+ 7 * 10^0 ( 7)
-----------------
17 (17)
答案 4 :(得分:1)
十六进制计数为16位,而不是10位。为了计算额外的6位数,它使用A
字母到F
。
在基数16和基数10中从0开始计数:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11 (base 16)
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 (base 10)
另外,要从base 16转换为base 10:
11 16 = 1 * 16 + 1 = 17 10
答案 5 :(得分:0)
好吧,也许是因为0x11 IS 17十进制?
答案 6 :(得分:0)
这是一种简单的观看方式
128 64 32 16 8 4 2 1 = ...的十进制值 0 0 0 1 0 0 0 1 =布尔开关为ON或OFF
将它们加在一起16 + 1 = 17