C:0x11,以十进制表示

时间:2011-06-19 20:48:04

标签: c decimal hex

对此基本问题感到抱歉,但为什么0x1117(print(%d, 0x11)=17

我搜索有关从十六进制转换为十六进制的方式的信息,但它没有谈论这种数字。

7 个答案:

答案 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