STC 32位 8051单片机原理与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.1 数制及其转换方法

数制就是计数的方法,通常采用进位计数制,在学习与应用微型计算机的过程中,常用的数制有二进制、十进制和十六进制。日常生活中采用的是十进制计数方法。由于微型计算机只能识别和处理数字信息,因此微型计算机硬件电路采用的是二进制计数方法。但为了更好地记忆与描述微型计算机的地址、程序及运算数字,一般采用十六进制计数方法。

1.各种数制及其表示方法

二进制、十进制、十六进制的计数规则与表示方法如表1.1所示。

表1.1 二进制、十进制、十六进制的计数规则与表示方法

注意:i是各进制数码在数字中的位置,i值以小数点为界,往左依次为0,1,2,3,…,往右依次为-1,-2,-3,…。

2.数制之间的转换

数值在任意进制之间的相互转换,其整数部分和小数部分必须分开进行。各进制数的相互转换关系如图1.1所示。

1)二进制数、十六进制数转换成十进制数

将二进制数、十六进制数按权值展开式展开,所得数相加,即十进制数。

图1.1 各进制数的相互转换关系

2)十进制数转换成二进制数

十进制数转换成二进制数要将数值分成整数部分与小数部分进行转换,整数部分和小数部分的转换方法是完全不同的。

(1)十进制数的整数部分转换成二进制数的整数部分—“除以2取余”法,将所得余数倒序排列,即可得到二进制数的整数部分,如下所示:

∴(84)10=(1010100)2

(2)十进制数的小数部分转换成二进制数的小数部分—“乘2取整”法,将所得整数部分顺序排列,即可得到二进制数的小数部分,如下所示:

∴(0.6875)10=(0.1011)2

将上述两部分合起来,则有:

(84.6875)10=(1010100.1011)2

3)二进制数与十六进制数相互转换

(1)二进制数转换成十六进制数。

以小数点为界,往左、往右每4位二进制数为一组,每4位二进制数用1位十六进制数表示,往左高位不够用0补齐,往右低位不够用0补齐。例如:

(111101.011101)2=(00111101.011101002=(3D.74)16

(2)十六进制数转换成二进制数。

先将每位十六进制数用4位二进制数表示,再将整数部分最高位的0去掉,小数部分最低位的0去掉。例如:

(3C20.84)16=(0011110000100000.100001002=(11110000100000.100001)2

3.数制转换工具

利用计算机附件中的计算器(科学型)可实现各数制之间的相互转换。单击任务栏中的“开始”按钮,依次单击“所有程序”→“附件”→“计算器”,即可打开“计算器”窗口,在该窗口中单击菜单栏中的“查看”菜单,选择“科学型”,此时计算器界面即科学型计算器界面,如图1.2所示。

图1.2 科学型计算器界面

转换方法:先选择被转换数制类型,并在文本框中输入要转换的数字,再选择目标转换数制类型,此时,文本框中的数字就是转换后的数字。例如,将96转换为十六进制数、二进制数的步骤为,先选择数制类型为十进制,再在文本框中输入96,然后选择数制类型为十六进制,此时,文本框中看到的数字即转换后的十六进制数60;再选择数制类型为二进制,此时,文本框中看到的数字即转换后的二进制数1100000,如图1.2所示。

4.二进制数的运算规则

(1)加法运算规则:

0+0=0,0+1=1,1+1=0(有进位)

(2)减法运算规则:

0-0=0,1-0=1,1-1=0,0-1=1(有借位)

(3)乘法运算规则:

0×0=0,1×0=1,1×1=1