MorFans Dev
折腾 - 开发 - 分享

[记录]十六进制的转换

[记录]十六进制的转换

通常,在单片机里面对寄存器或者引脚进行赋值时使用十六进制的数,之所以用十六进制,是因为二进制数太长了,而十进制数表示没有十六进制数清晰。

起由

今天在玩数码管时候遇到了0xff,知道是16进制,输入到windows自带计算器里面一直提示无效输入(😂我那时机(zhi)智(zhang)的想输入0xff),上网查询后才发现我如此的机(zhi)智(zhang),哈哈

转换

这个其实挺简单的,0x表示这是十六进制,十六进制每位数值由 0-f表示。
16进制变二进制再变十进制:
0xff = 1111 1111 = 2^8 - 1 = 255
所以0xff 对应 二进制为 ‭11111111‬B

10进制与16进制间关系

1 — 0X1 2 — 0X2 3 — 0X3 4 — 0X4
5 — 0X5 6 — 0X6 7 — 0X7 8 — 0X8
9 — 0X9 10 — 0Xa 11 — 0xb 12 — 0xc
13 — 0xd 14 — 0xe 15 — 0xf
16进制变十进制:f表示15。第n位的权值为16的n次方,由右到左从0位起:
0xff = 15*16^1 + 15*16^0 = 255
十进制就是‭255‬

计算

一般情况下,我们会使用计算器来计算。那怎么计算呢,直接输入 0xff 会提示无效输入呀。
下面以 windows 10 自带计算器来举例:
打开计算器 调成程序员模式,其中:

  • HEX 16进制
  • DEC 10进制
  • OCT 8进制
  • BIN 2进制

【找不到计算器的请按下 Ctrl + R,输入 calc,然后 Enter
在这篇文章开头就说了,0x表示这是十六进制,所以我们只需要输入后面的即可,这里以0xff 的为例:
2017041417222867
同理,我们现在来用计算器计算0x07 ,去除前面0x,剩余07,输入转换为二进制‭0111‬
那么接下来就将 二进制 01101111转换为16进制:去除前的0,在计算器中点击 BIN,输入1101111,转换为十六进制 6F,再加上0x,表示这是16进制,最终得出 0x6F
[collapse title=”Test”]

[/collapse]

赞赏
魔帆博客,版权所有 | 如未注明,均为原创
本站均采用 BY-NC-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:[记录]十六进制的转换(https://www.morfans.cn/archives/2413)

野小新

文章作者

野小新很野~

发表回复

textsms
account_circle
email

[记录]十六进制的转换
通常,在单片机里面对寄存器或者引脚进行赋值时使用十六进制的数,之所以用十六进制,是因为二进制数太长了,而十进制数表示没有十六进制数清晰。 起由 今天在玩数码管时候遇到了0xff,…
扫描二维码继续阅读
2017-04-15