《(精品)2单片机(数制的转换).ppt》由会员分享,可在线阅读,更多相关《(精品)2单片机(数制的转换).ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1 1章章 微型计算机基础微型计算机基础 1.1 计算机中的数制及相互转换计算机中的数制及相互转换 1.2 二进制数的运算二进制数的运算 1.3 带符号数的表示带符号数的表示 1.4 定点数和浮点数定点数和浮点数 1.5 BCD码和码和ASCII码码 1.1 计算机中的数制及相互转换计算机中的数制及相互转换 1.1.1 进位计数制进位计数制 按按进进位位原原则则进进行行计计数数的的方方法法,称称为为进进位位计计数数制制。十进制数有两个主要特点十进制数有两个主要特点:(1)有有 10 个个不不同同的的数数字字符符号号:0、1、2、9;(2)低位向高位进位的规律是低位向高位进位的规律是“逢十进
2、一逢十进一”。因因此此,同同一一个个数数字字符符号号在在不不同同的的数数位位所代表的数值是不同的。所代表的数值是不同的。如如555.5中中 4 个个 5分分别别代代表表500、50、5 和和 0.5,这个数可以写成这个数可以写成555.5=5102+5101+5100+510-1 式中的式中的“10”称为十进制的称为十进制的 基数基数 10、101、100、10-1称为各数位的称为各数位的 权权。任意一个十进制数任意一个十进制数N都可以表示成按权展开的多项式都可以表示成按权展开的多项式:其其中中,di是是09共共10个个数数字字中中的的任任意意一一个个,m是是小小数数点点右右边边的的位位数数,
3、n是是小小数数点点左左边边的的位位数数,i是是数数位位的的序序数数。例例如如,543.21可表示为可表示为 543.21=5102+4101+3100+210-1+110-2一般而言一般而言,对于用对于用 R 进制进制表示的数表示的数 N ,可以按权展开为可以按权展开为 式式中中,ai 是是 0、1、(R-1)中中的的任任一一个个,m、n是是正正整整数数,R是是基基数数。在在 R 进进制制中中,每每个个数数字字所所表表示示的的值值是是该该数数字与它相应的权字与它相应的权Ri的乘积的乘积,计数原则计数原则是是“逢逢 R进一进一”。1.二进制数二进制数 当当 R=2 时时,称称为为二二进进位位计计
4、数数制制,简简称称二二进进制制。在在二二进进制制数数中中,只只有有两两个个不不同同数数码码:0和和1,进进位位规规律律为为“逢逢二二进进一一”。任何一个数任何一个数 N,可用二进制表示为可用二进制表示为 例如例如,二进制数二进制数 1011.01 可表示为可表示为 (1011.01)2=123+022+121+120+02-1+12-2 2.八进制数八进制数 当当R=8 时时,称称为为八八进进制制。在在八八进进制制中中,有有 0、1、2、7 共共 8 个个不不同同的的数数码码,采采用用“逢逢八八进进一一”的的原原则则进进行行计计数数。如(如(503)8可表示为可表示为(503)8=582+08
5、1+380 3.十六进制十六进制 当当R=16时时,称称为为十十六六进进制制。在在十十六六进进制制中中,有有 0、1、2、9、A、B、C、D、E、F共共 16个个不不同同的的数数码码,进进位位方方法法是是“逢逢十十六六进进一一”。例例如如,(3A8.0D)16可可表表示示为为(3A8.0D)16=3162+10161+8160+016-1+1316-2 表表1.1 各种进位制的对应关系各种进位制的对应关系 十进制十进制十进制十进制二进制二进制二进制二进制八进制八进制八进制八进制十六进制十六进制十六进制十六进制十进制十进制十进制十进制二进制二进制二进制二进制八进制八进制八进制八进制十六进制十六进
6、制十六进制十六进制0 00 00 00 09 91001100111119 91 11 11 11 11010101010101212A A2 210102 22 21111101110111313B B3 311113 33 31212110011001414C C4 41001004 44 41313110111011515DD5 51011015 55 51414111011101616E E6 61101106 66 61515111111111717F F7 71111117 77 71616100010000 0202010108 81000100010108 81.1.2 不同进
7、制间的相互转换不同进制间的相互转换 1.二、二、八、八、十六进制转换成十进制十六进制转换成十进制:按权展开法按权展开法 例例 1 将将数数(10.101)2,(46.12)8,(2D.A4)16转转换换为为十十进进制制。(10.101)2=121+020+12-1+02-2+12-3=2.625 (46.12)8=481+680+18-1+28-2=38.156 25 (2D.A4)16=2161+13160+1016-1+416-2=45.640 62 2.十进制数转换成二、八、十六进制数十进制数转换成二、八、十六进制数 任任意意十十进进制制数数 N 转转换换成成 R 进进制制数数,需需将将
8、整整数数部部分分和和小小数数部部分分分分开开,采采用用不不同同方方法法分分别别进进行行转转换换,然后用小数点将这两部分连接起来。然后用小数点将这两部分连接起来。(1)整数部分整数部分:除基取余法。除基取余法。分分别别用用基基数数 R 不不断断地地去去除除 N 的的整整数数,直直到到商商为为零零为为止止,每每次次所所得得的的余余数数依依次次排排列列即即为为相相应应进进制制的的数数码码。最最初初得到的为最低有效数字得到的为最低有效数字,最后得到的为最高有效数字。最后得到的为最高有效数字。例例 2 将(将(168)10转换成二、转换成二、八、八、十六进制数十六进制数。(2)小数部分小数部分:乘基取整
9、法。乘基取整法。分分别别用用基基数数 R(R=2、8或或16)不不断断地地去去乘乘N 的的小小数数,直直到到积积的的小小数数部部分分为为零零(或或直直到到所所要要求求的的位位数数)为为止止,每每次次乘乘得得的的整整数数依依次次排排列列即即为为相相应应进进制制的的数数码码。最最初初得得到到的的为为最最高高有有效数字效数字,最后得到的为最低有效数字。最后得到的为最低有效数字。故:故:(0.645)10=(0.10100)2=(0.51217)8=(0.A51EB)16 例例 4 将将(168.645)10转转换换成成二二、八八、十六进制数。十六进制数。根据例根据例2、例、例 3 可得可得 (168
10、.645)10=(10101000.10100)2=(250.51217)8 =(A8.A51EB)16 3.二进制与八进制之间的相互转换二进制与八进制之间的相互转换 由由于于23=8,故故可可采采用用“合合三三为为一一”的的原原则则,即即从从小小数数点点开开始始分分别别向向左左、右右两两边边各各以以3位位为为一一组组进进行行二二八八换换算算:若若不不足足 3 位位的的以以 0 补补足足,便便可可将将二二进进制制数数转转换换为为八八进进制制数数。反反之之,采采用用“一一分分为为三三”的的原原则则,每每位位八八进进制制数数用用三三位位二二进进制制数数表表示示,就可将八进制数转换为二进制数。就可将
11、八进制数转换为二进制数。例例 5 将(将(101011.01101)2转换为八进制数。转换为八进制数。101 011 .011 010 5 3 .3 2 即即 (101011.01101)2=(53.32)8 例例 6 将将(123.45)8转换成二进制数。转换成二进制数。1 2 3 .4 5001 010 011 .100 101 即即 (123.45)8=(1010011.100101)例例 7 将(将(110101.011)2转换为十六进制数。转换为十六进制数。0011 0101 .0110 3 5 .6 即即 (110101.011)2=(35.6)16 例例 8 将(将(4A5B.6
12、C)16转换为二进制数。转换为二进制数。4 A 5 B .6 C0100 1010 0101 1011 .0110 1100即即 (4A5B.6C)16=(100101001011011.011011)2 1.2 二进制数的运算二进制数的运算 1.2.1 二进制数的算术运算二进制数的算术运算 二二进进制制数数只只有有 0和和1两两个个数数字字,其其算算术术运运算算较较为为简简单单,加加、减减法法遵遵循循“逢逢二二进进一一”、“借借一一当当二二”的原则。的原则。1.加法运算加法运算规则规则:0+0=0;0+1=1;1+0=1;1+1=10(有进位有进位)例例 1 求求1001B+1011B。2.
13、减法运算减法运算规则规则:0-0=0;1-1=0;1-0=1;0-1=1(有借位有借位)例例 2 求求1100B-111B。3.乘法运算乘法运算规则规则:00=0;01=10=0;11=1例例 3 求求1011B1101B。即即 10100101B/1111B=1011B 4.除法运算除法运算规则规则:0/1=0;1/1=1例例 4 求求10100101B/1111B 1.2.2 二进制数的逻辑运算二进制数的逻辑运算 1.“与与”运算运算 “与与”运运算算是是实实现现“必必须须都都有有,否否则则就就没没有有”这这种种逻逻辑辑关系的一种运算。关系的一种运算。运算符为运算符为“”,其运算规则如下其
14、运算规则如下:00=0,01=10=0,11=1 例例 5 若若X=1011B,Y=1001B,求求XY。.即即 XY=1001B 2.“或或”运算运算 “或或”运算是实现运算是实现“只要其中之一有只要其中之一有,就有就有”这种逻辑这种逻辑关系的一种运算关系的一种运算,其运算符为其运算符为“+”。“或或”运算规则如下运算规则如下:0+0=0,0+1=1+0=1,1+1=1 例例 6 若若X=10101B,Y=01101B,求求X+Y。101010110111101+即即 X+Y=11101B 3.“非非”运算运算 “非非”运运算算是是实实现现“求求反反”这这种种逻逻辑辑的的一一种种运运算算,如
15、如变变量量A的的“非非”运运算算记记作作 。其其运运算算规规则则如下如下:A例例 7 若若A=10101B,求求 。A 4.“异或异或”运算运算 “异或异或”运算是实现运算是实现“必须不同必须不同,否则就没有否则就没有”这种逻这种逻辑的一种运算辑的一种运算,运算符为运算符为“”。其运算规则是其运算规则是:例例 8 若若X=1010B,Y=0110B,求求XY。101001101100即即 XY=1100B 1.3 带符号数的表示带符号数的表示 1.3.1 机器数及真值机器数及真值 计计算算机机在在数数的的运运算算中中,不不可可避避免免地地会会遇遇到到正正数数和和负负数数,那那么么正正负负符符号
16、号如如何何表表示示呢呢?由由于于计计算算机机只只能能识识别别0和和1,因因此此,我我们们将将一一个个二二进进制制数数的的最最高高位位用用作作符符号号位位来来表表示示这这个个数数的的正正负负。规规定定符符号号位位用用“0”表表示示正正,用用“1”表表示示负负。例例如如,X=-1101010B,Y=+1101010B,则则X表表示示为为:11101010B,Y表表示为示为01101010B。1.3.2 数的码制数的码制 1.原码原码 当当正正数数的的符符号号位位用用0表表示示,负负数数的的符符号号位位用用1表表示示,数数值值部部分分用用真真值值的的绝绝对对值值来来表表示示的的二二进进制制机机器器数
17、数称称为为原原码码,用用X原原表示表示,设设X为整数。为整数。若若X=+Xn-2Xn-3X1X0,则则X原原=0Xn-2Xn-3X1X0=X;若若X=-Xn-2Xn-3X1X0,则则X原原=1Xn-2Xn-3X1X0=2n-1-X。其其中中,X为为n-1位位二二进进制制数数,Xn-2、Xn-3、X1、X0为为二二进进制制数数0或或1。例例如如+115和和-115在在计计算算机机中中(设设机机器器数数的的位位数数是是8)其原码可分别表示为)其原码可分别表示为+115原原=01110011B;-115原原=11110011B 可见可见,真值真值X与原码与原码X原原的关系为的关系为 值值得得注注意意
18、的的是是,由由于于+0原原=00000000B,而而-0原原=10000000B,所以数所以数 0的原码不唯一。的原码不唯一。8位二进制原码能表示的范围是位二进制原码能表示的范围是:-127+127。2.反码反码 一一个个正正数数的的反反码码,等等于于该该数数的的原原码码;一一个个负负数数的的反反码码,由它的正数的原码按位取反形成。反码用由它的正数的原码按位取反形成。反码用X反反表示。表示。若若X=-Xn-2Xn-3X1X0,则则X反反=1Xn-2Xn-3X1X0。例例如如:X=+103,则则 X反反=X原原=01100111B;X=-103,X原原=11100111B,则则X反反=10011
19、000B。3.补码补码 “模模”是是指指一一个个计计量量系系统统的的计计数数量量程程。如如,时时钟钟的的模模为为12。任任何何有有模模的的计计量量器器,均均可可化化减减法法为为加加法法运运算算。仍仍以以时时钟钟为为例例,设设当当前前时时钟钟指指向向11点点,而而准准确确时时间间为为7点点,调调整整时时间间的的方方法法有有两两种种,一一种种是是时时钟钟倒倒拨拨4小小时时,即即11-4=7;另另一一种种是是时时钟钟正正拨拨8小小时时,即即11+8=12+7=7。由由此此可可见见,在在以以12为为模模的的系系统统中中,加加8和减和减4的效果是一样的的效果是一样的,即即 -4=+8(mod 12)对于
20、对于n位计算机来说位计算机来说,数数X的补码定义为的补码定义为 即即正正数数的的补补码码就就是是它它本本身身,负负数数的的补补码码是是真真值值与与模模数数相相加加而而得。得。例如例如,n=8时时,+75补补=01001001B -73补补=10000000 B-01001001B=10110111B 0补补=+0补补=-0补补=00000000B 可可见见,数数0的的补补码码表表示示是是唯唯一一的的。在在用用补补码码定定义义求求负负数数补补码码的的过过程程中中,由由于于做做减减法法不不方方便便,一一般般该该法法不不用用。负负数数补补码码的的求求法法:用用原原码码求求反反码码,再再在在数数值值末
21、末位位加加1,即即:X补补=X反反+1。例例 如如:-30补补=-30反反+1=+30原原+1=11100001+1=11100010B。8位位二二进进制制补补码码能能表表示示的的范范围围为为:-128+127,若超过此范围若超过此范围,则为溢出。则为溢出。1.4 定点数和浮点数定点数和浮点数 1.定点法定点法 定定点点法法中中约约定定所所有有数数据据的的小小数数点点隐隐含含在在某某个个固固定定位位置置。对对于于纯纯小小数数,小小数数点点固固定定在在数数符符与与数数值值之之间间;对对于于整整数数,则则把小数点固定在数值部分的最后面把小数点固定在数值部分的最后面,其格式为其格式为 纯小数表示纯小
22、数表示:数符数符.尾数尾数 数数数数 符符符符尾尾尾尾 数数数数.小数点小数点数数数数 符符符符尾尾尾尾 数数数数.小数点小数点 2.浮点法浮点法 浮浮点点法法中中,数数据据的的小小数数点点位位置置不不是是固固定定不不变变的的,而而是是可可浮动的。浮动的。因此因此,可将任意一个二进制数可将任意一个二进制数N表示成表示成N=M2E其其中中,M为为尾尾数数,为为纯纯二二进进制制小小数数,E称称为为阶阶码码。可可见见,一一个个浮浮点点数数有有阶阶码码和和尾尾数数两两部部分分,且且都都带带有有表表示示正正负负的的阶阶码码符符与数符与数符,其格式为其格式为 阶阶阶阶 符符符符阶码阶码阶码阶码E E数数数
23、数 符符符符尾数尾数尾数尾数MM 设设阶阶码码 E的的位位数数为为m位位,尾尾数数M的的位位数数为为n位位,则则浮浮点点数数N的取值范围为的取值范围为 2-n2-2m+1|N|(1-2-n)22m-1 为为了了提提高高精精度度,发发挥挥尾尾数数有有效效位位的的最最大大作作用用,还还规规定定尾数数字部分原码的最高位为尾数数字部分原码的最高位为1,叫做叫做规格化表示法。规格化表示法。如如0.000101表示为表示为:2-30.101 1.5 BCD码和码和ASCII 码码 1.5.1 BCD码码 十进制数十进制数十进制数十进制数 8421BCD8421BCD码码码码 十进制数十进制数十进制数十进制数 8421BCD8421BCD码码码码 0 0000000005 5010101011 1000100016 6011001102 2001000107 7011101113 3001100118 8100010004 4010001009 910011001表表1.2 8421BCD编码表编码表 例例 1 写出写出69.25的的BCD码。码。根根据据表表 1.2,可可直直接接写写出出相相应应的的BCD码码:69.25=(01101001.00100101)BCD 1.5.2 ASCII码码 表表 1.3 ASCII 码码 表表