1.2 不同数制及相互转换简介
日常生活中,人们习惯采用十进制数。在单片机C语言编程中一般采用二进制、十六进制和八进制。对于一个固定的数,用不同进位制的数制表示时,数码不一样,但大小是一样的。C语言编程时,常需要对一个数进行数字的转换。
1.2.1 十进制数
十进制数用0、1、2、3、4、5、6、7、8、9十个基本数字符号的不同组合来表示一个数,计数的基数是10。当任何一个数比9大1时,则向相邻高位进1,本位复为0,其计数规律是“逢十进一”。十进制数可用下标“D”来表示,也可以不加下标“D”。一个十进制数有个位、十位、百位等,任何一个十进制数都可以用该数的各位数码乘以该位的加权系数来表示,例如对一个十进制2138的表示方法如下:
各位的数码: 2(千位) 1(百位) 3(十位) 8(个位)
数位的加权系数: 103 102 101 100
2138D=(2×103+1×102+3×101+8×100)D
1.2.2 二进制数
二进制数只有0、1两个数码,二进制数可用下标“B”来表示,是按“逢二进一”的原则进行计数的,例如,0D=0B,1D=1B,2D=10B,3D=11B,4D=100B。
同样,任何一个二进制数都可以用该数的各位的数码乘以该位的加权系数来表示,例如对一个二进制数1011的表示方法如下:
各位的数码: 1 0 1 1数位的加权系数: 23(值为8) 22(值为4) 21(值为1) 20(值为1)
1011B =(1×23 + 0×22 + 1×21 + 1×20)D
=11D
这也就是二进制数转化为十进制数的方法。
1.2.3 十六进制数
十六进制数共有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中A、B、C、D、E、F分别对应着十进制的10、11、12、13、14、15。十六进制数可用下标H来表示。计数规律是逢“十六进一”,例如,9D=9H,10D=AH,…,14D=EH,15D=FH,16D=10H(逢十六进了一位,原位归0)。
同样,任何一个十六进制数都可以用该数的各位数码乘以该位的加权系数来表示,例如对一个十六进制数0A3FH的表示方法如下:
0A3FH=(0×163+A×162+3×161+F×160)D=(0+10×256+3×16+15×1)D=2623D。
这也就是十六进制数转化为十进制数的方法。
1.2.4 八进制数
八进制数共有0、1、2、3、4、5、6、78个数码,其计算规律是逢八进一。略。
1.2.5 各种数制之间相互转换的方法
1.各种数制转换为十进制
已作介绍。
2.十进制数转换为二进制数
十进制数转换为二进制数的方法是,用十进制数不断除以2,所得到的余数即为相应的二进制数,注意:第一次得到的余数为二进制数的最低位,直到商为0时所得到的余数为二进制数的最高位,例如,将十进制数14转换为二进制的方法如下:
所以14D=1110B。
3.十进制数转换为十六进制数
与十进制转换为二进制数相似,十进制数转换为十六进制数的方法是,用十进制数不断除以16,所得到的余数即相应的十六进制数,注意:第一次得到的余数为十六进制数的最低位,直到商为0时所得到的余数为十六进制数的最高位。
4.十六进制数转换为二进制数
方法是将十六进制的每一位数码先转换为十进制,再转换成4位二进制数,若不足4位,则将高位补0。
例如对十六进制“2E”中的“2”转换为十进制仍为“2”,转换为二进制的数为“0010”,“E”转换为十进制为“14”,再转换为二进制为“1110”,所以2EH=00101110B。
5.二进制数转换为十六进制数
以小数点为界,将二进制数每4位为一组,小数点左边若不足4位,则在高位补0,小数点右边若不足4位,则在低位补0。再将每一组转换为十进制数,然后转换为十六进制数。
例如对二进制数“101101”的转换方法如下:
其中0010转化为十进制数为2,再转化为十六进制数仍为2;1101转化为十进制数为13,再转为二进制数为D,所以,转换结果为2D,即101101B=2DH。
6.利用计算器快捷地进行数制转换
(1)计算器的调出方法。利用计算机操作系统自带的计算器,可以快捷地进行各种数制的转换,这在单片机C语言编程中经常使用,十分方便。其方法是:以XP操作系统为例,用鼠标左键依次单击“开始”、“所有程序”、“附件”、“计算器”,弹出的计算器界面如图1-7所示。
用鼠标左键依次单击“查看”、“科学型”,弹出科学型计算器的界面如图1-8所示。
图1-7 标准型计算器的界面
图1-8 科学型计算器的界面
(2)利用计算器进行数制转换的方法。以十进制数“18”转换成十六进制数为例,首先用鼠标左键单击选中所需的数制(十进制),再输入十进制数的具体数值18,再单击“十六进制”,则相应的十六进制数会在显示区显示出来。(注:①十六进制的A、B、C、D、E、F则需键盘输入。②其他计算机操作系统中也都自带有计算器)。