十六进制的0x0C是多少,为是么C前面还要加一个0

具体出处是stm32单片机的一个寄存器的偏移地址: 0x0C
好几种说法哦??????????????

  0x0C应该是一个寄存器的偏移地址。0x表示十六进制,所以0x0C即表示十六进制C相当于十进的12。
  C前加一个0 是为了代码整齐好看、易于阅读, 比如:
  #define a 0xFC10
  #define b 0x000C
  0xf跟 0x0000f 在实际作用上是完全一样的。
  有一种说法认为C前面加0可能是因为寄存器占8位,所以需要两个16进制数填满:0C的二进制是00001100,八位填满了寄存器,可以参考。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-07
十进制为12,即C的十进制值。
前面加0可能是因为寄存器占8位,所以需要两个16进制数填满
0C的二进制是00001100,八位填满了寄存器
第2个回答  2014-12-07
0C即0CH,就是十进制的12,规定0x表示16进制追问

不是很理解,为什么又多了个H出来,12不是就用C表示吗就是0xC啊,那么C前的0和后面的H是什么意思。谢谢你

追答

我说H是广义的一个说法,就是十六进制的表示,可以不用管,至于C前面的0,是因为用字母表示的时候要在字母前面加0,这是一个规定

第3个回答  2014-12-07
加0 是为了代码好看, 比如
#define a 0xFC10
#define b 0x000C

这样就对齐了追问

那如果是位操作的话,被操作的位数会增加吗?

追答

当然不会, 0xf 跟 0x0000f 在实际作用上是完全一样的

本回答被提问者和网友采纳
相似回答