双源电子

在线客服
 工作时间
周一至周五 :8:30-17:30
周六至周日 :9:00-17:00

ARDUINO学习番外篇6

作者:双源电子

说一说十六进制和二进制的转换吧,这是在单片机、嵌入式编程中常用到的转换,我们都知道,二进制在嵌入式编程中很多情况下都是直接对应硬件管脚状态了,1是高,0是低,在控制LED点阵或者大量继电器的的时候,如果我们一位一位进行操作,程序会写的很啰嗦,但是用十六进制来表示的话,就很简单明了了。
十六进制数通常用unsigned char (8位),unsigned short(16位)或者unsigned long(32位)这几种类型来表示 ,也就是说,1个十六进制数就可以用来描述8/16/32个二进制数,那该如何快速转换呢?
十六进制数,也就是从0计数,计到16的整数倍时就要像高位进1位,因此十六进制数个位最低是0,最高是15,用十六进制表示就是F,那么二进制来表示0~0xF应该如何表示呢?0xF = 2的4次方-1,也就是0B10000-1=0B1111,所以十六进制的每一位数都可以用4位二进制数来表示,
0x0=0B0000,0x1=0B0001,0x2=0B0010,0x3=0B0011,
0x4=0B0100,0x5=0B0101,0x6=0B0110,0x7=0B0111,
0x8=0B1000,0x9=0B1001,0xA=0B1010,0xB=0B1011,
0xC=0B1100,0xD=0B1101,0xE=0B1110,0xF=0B1111
记住最基本的16个二进制数,在遇到十六进制数转换时,就很容易快速的实现了,
如:0xAF5B就是把A、F、5、B分别展开,对应上表,很快得出:
0xAF5B = 0B1010 1111 0101 1011
反过来也是一样,把二进制数从最低位(一般从最右边数)开始每4位为一组进行转换就可以了,最后不够4位的话在左侧补0即可;如:
0B 1 1011 0110 = 0B 0001 1011 0110 =0x1B6

联系方式
_faiMaterial_000045

联系人:ANTBOT001

QQ:584860790

邮 箱:584860790@qq.com

交流群: 615486305