计算机中的数制与编码.ppt

上传人:s9****2 文档编号:568231498 上传时间:2024-07-23 格式:PPT 页数:61 大小:953.01KB
返回 下载 相关 举报
计算机中的数制与编码.ppt_第1页
第1页 / 共61页
计算机中的数制与编码.ppt_第2页
第2页 / 共61页
计算机中的数制与编码.ppt_第3页
第3页 / 共61页
计算机中的数制与编码.ppt_第4页
第4页 / 共61页
计算机中的数制与编码.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《计算机中的数制与编码.ppt》由会员分享,可在线阅读,更多相关《计算机中的数制与编码.ppt(61页珍藏版)》请在金锄头文库上搜索。

1、微微机机原理及应用原理及应用第二章第二章 数制与编码数制与编码葛晓宇微微机机原理及应用原理及应用n计算机中的数制计算机中的数制n无符号二进制数的算术运算和逻辑运算无符号二进制数的算术运算和逻辑运算n带符号二进制数的表示及运算带符号二进制数的表示及运算n二进制编码二进制编码n常用术语解释常用术语解释本章主要内容本章主要内容微微机机原理及应用原理及应用本章重点本章重点n计算机中的常用计数制、编码及它们计算机中的常用计数制、编码及它们 相互间的转换相互间的转换n二进制数的算术运算和逻辑运算二进制数的算术运算和逻辑运算n带符号二进制数的表示及补码运算带符号二进制数的表示及补码运算n二进制数运算中的溢出

2、问题二进制数运算中的溢出问题n基本逻辑门及译码器基本逻辑门及译码器n例题讲解例题讲解微微机机原理及应用原理及应用2.1 2.1 计算机中的数制计算机中的数制数制数制是人们利用符号来计数的科学方法。数制可以有很多是人们利用符号来计数的科学方法。数制可以有很多种,但在计算机的设计和使用上常用的则为十进制、种,但在计算机的设计和使用上常用的则为十进制、二进制、八进制和十六进制。二进制、八进制和十六进制。 数制的基和权数制的基和权数制所使用的数码的个数称为基,数制每一位所具有数制所使用的数码的个数称为基,数制每一位所具有的值称为权的值称为权。微微机机原理及应用原理及应用十进制:十进制: 基为基为“10

3、10”,权为以,权为以1010为底的幂,为底的幂, D D二进制:二进制: 基为基为“2 2”,权为以,权为以2 2为底的幂,为底的幂, B B八进制:八进制: 基为基为“8 8”,权为以,权为以8 8为底的幂,为底的幂, O O十六进制:基为十六进制:基为“1616”,权为以,权为以1616为底的幂为底的幂 H H十进制数十进制数: :二进制数二进制数: :微微机机原理及应用原理及应用数数 制制 的的 转转 换换十进制数十进制数十进制数十进制数转换成二进制代码的方法:转换成二进制代码的方法: 对于十进制数整数部分采用除对于十进制数整数部分采用除2 2取余法取余法 对于十进制数小数部分采用乘对

4、于十进制数小数部分采用乘2 2取整法取整法 例例1:求十进制数:求十进制数17的二进制代码的二进制代码例例2:求十进制数:求十进制数0.25的二进制代码的二进制代码习习 题题返回返回思考:如何完成十进制数向十六进制数的转换?思考:如何完成十进制数向十六进制数的转换?微微机机原理及应用原理及应用数 制 的 转 换微微机机原理及应用原理及应用例例1 1:求十进制数:求十进制数1717的二进制代码的二进制代码被除数被除数 除数除数 商商 余数余数 17 2 8 1 8 2 4 0 4 2 2 0 2 2 1 01 10 00 00 01 1D D0 0D D1 1D D2 2D D3 3D D4 4

5、方法总结:对于十进制数整数部分采用除方法总结:对于十进制数整数部分采用除2取余法,取余法,直到商为直到商为0微微机机原理及应用原理及应用例例2 2:求十进制数:求十进制数0.250.25的二进制代码的二进制代码被乘数被乘数 乘数乘数 积积 取整取整 0.25 2 0.5 0 0.5 2 1.0 1 0 01 D-1 D-20 D0方法总结:对于十进制数小数部分采用乘方法总结:对于十进制数小数部分采用乘2取整法,取整法,直到小数部分为直到小数部分为0 微微机机原理及应用原理及应用数 制 的 转 换二进制数二进制数11011.0111 幂幂24232221202-12-22-32-4 权权1684

6、210.50.250.125.0625 数数 值值16802100.250.125.0625十进制数十进制数16 + 8 + 0 + 2 + 1 + 0 + .25 + .125 + .0625 = 27.4375例例例例3 3:将二进制代码:将二进制代码:将二进制代码:将二进制代码11011.011111011.0111转换为十进制数转换为十进制数转换为十进制数转换为十进制数微微机机原理及应用原理及应用数 制 的 转 换 例例4: 4: 将下面给出的二进制数转换成十六进制的数将下面给出的二进制数转换成十六进制的数注注意意二二进进制制数数转转换换为为十十六六进进制制数数的的方方法法: 从从小小

7、数数点点开开始始分分别别向向左左和和向向右右把把整整数数和和小小数数部部分分每每四四位位分分段段,每每段段分分别别转转换换为为一一位位。若若整整数数最最高高位位的的一一组组不不足足位位,则则在在其其左左边边补补零零;若若小小数数最最低低位位的的一一组组不不足足位位,则则在在其其右右边边补补零零0010000001011010011111100100十六进制数十六进制数205A7E4二进制数二进制数微微机机原理及应用原理及应用数 制 的 转 换二进制二进制十进制十进制十六进制十六进制二进制二进制十进制十进制十六进制十六进制000000100088000111100199001022101010A

8、001133101111B010044110012C010155110113D011066111014E011177111115F微微机机原理及应用原理及应用(1)11010(2)1101001、下列各二进制数相当于十进制数的多少?、下列各二进制数相当于十进制数的多少?答案:答案:26(10)答案:答案:52(10) 习习 题题返回返回微微机机原理及应用原理及应用2.2 无符号二进制数的运算返回返回算术的四种基本运算:加、减、乘、除算术的四种基本运算:加、减、乘、除试计算试计算011011与与010010之和之和结论:两个二进制数相加是通过逐位相加来实现的。结论:两个二进制数相加是通过逐位相加

9、来实现的。微微机机原理及应用原理及应用二进制数的加法运算返回返回推广推广: :设两个二进制数分别为A=A3A2A1A0,B=B3B2B1B0两数之和为S=S3S2S1S0S0=A0+B0 进位C1S1=A1+B1+C1 进位C2S2=A2+B2+C2 进位C3S3=A3+B3+C3 进位C4A+B=C4S3S2S1S0微微机机原理及应用原理及应用二进制数的减法运算原理:原理:将减数变成补码补码后,再与被减数相加,其和(如有进位的话,则舍去进位)就是两个数之差。什么是补码?什么是补码?补码反码(原码取反)补码反码(原码取反)()()是进位,舍去是进位,舍去微微机机原理及应用原理及应用n对二进制数

10、,乘以对二进制数,乘以2相当于左移一位相当于左移一位二进制数的乘法运算000010110100=00101100B 例例 :方法:方法:1 1 按照十进制的乘法过程按照十进制的乘法过程 2 2 采用移位加的方法采用移位加的方法微微机机原理及应用原理及应用n对二进制数,除以对二进制数,除以2则相当于右移则相当于右移1位位二进制数的除法运算000010110100=00000010B 即:商即:商=00000010B 余数余数=11B 例例 :微微机机原理及应用原理及应用无符号数的表示范围0 0 X 2X 2n n-1-1若运算结果超出这个范围,则产生溢出。若运算结果超出这个范围,则产生溢出。无符

11、号数的溢出判断准则:运算时,当最高位向更无符号数的溢出判断准则:运算时,当最高位向更高位有进位(或借位)时则产生溢出。高位有进位(或借位)时则产生溢出。 微微机机原理及应用原理及应用例: 最高位向前有进位,产生溢出最高位向前有进位,产生溢出00000000 100000001 11111111 +微微机机原理及应用原理及应用二进制数的逻辑运算 与与 或或 非非 异或异或微微机机原理及应用原理及应用或 运 算表表/达式:达式:Y = A + B其可能结果如下:其可能结果如下:Y = 0 + 0 = 0Y = 0Y = 0 + 1 = 1Y = 1 + 0 = 1Y = 1 + 1 = 1Y =

12、1结论结论:两者皆伪者则结果必伪,有一为真则结果为真两者皆伪者则结果必伪,有一为真则结果为真返回返回微微机机原理及应用原理及应用表达式:表达式:Y = A B其可能结果如下:其可能结果如下:Y = 1 1 = 1Y = 1Y = 0 0 = 0Y = 1 0 = 0Y = 0 1 = 0Y = 0结论结论:两者皆真者则两者皆真者则结果必真,有一为结果必真,有一为伪则结果为伪伪则结果为伪与 运 算非 运 算这其实也是反向器的性质。所以在电路实现上,反向器这其实也是反向器的性质。所以在电路实现上,反向器是反运算的基本元件是反运算的基本元件表达式:表达式:Y = A 微微机机原理及应用原理及应用三种

13、基本门电路:三种基本门电路:1AYY = A1AYBY=A + B 非门非门(反向器)(反向器) 或门或门 与门与门&AYBY=A B返回返回掌握:掌握:掌握:掌握: 与、或、非门逻辑符号和逻辑关系(真值表)与、或、非门逻辑符号和逻辑关系(真值表)与、或、非门逻辑符号和逻辑关系(真值表)与、或、非门逻辑符号和逻辑关系(真值表) 与非门、或非门的应用与非门、或非门的应用与非门、或非门的应用与非门、或非门的应用微微机机原理及应用原理及应用其 它 逻 辑 电 路1AYB或非门或非门Y = A + B与非门与非门&AYBY = A B=1AYB异或门异或门Y = AB + AB异或非门异或非门=1AY

14、BY = AB + AB1AY1Y = A缓冲器缓冲器返回返回微微机机原理及应用原理及应用译码器74LS138译码器译码器n作用:作用:将不同的地址信号转换为对某一芯片的将不同的地址信号转换为对某一芯片的片选信号片选信号G1G2AG2BCBAY0Y7 要求掌握要求掌握要求掌握要求掌握:各引脚功能各引脚功能输入端与输出端关系输入端与输出端关系使能端译码输入译码输出课外作业:下载并阅读该型课外作业:下载并阅读该型号译码器的数据手册。号译码器的数据手册。微微机机原理及应用原理及应用2.3 2.3 带符号二进制数的表示及运算带符号二进制数的表示及运算计算机中的符号数可表示为:计算机中的符号数可表示为:

15、 符号位符号位+真值真值 机器数机器数 “0” 表示正表示正 “1” 表示负表示负微微机机原理及应用原理及应用例: +52 = +0110100 = 0 0110100 符号位 真值 -52 = -0110100 = 1 0110100 符号位 真值微微机机原理及应用原理及应用1. 1. 符号数的表示:符号数的表示:n原码原码: :真值真值X X的原码记为的原码记为XX真,真,在原码表示法中不论在原码表示法中不论数的正负,数值部分均保持原真值不变。数的正负,数值部分均保持原真值不变。n反码反码: :真值真值X X的反码记为的反码记为XX反。反。正数的反码同原码。正数的反码同原码。负数的反码的数

16、值部分为真值的各位按位取反。负数的反码的数值部分为真值的各位按位取反。n补码:补码:真值真值X X的补码记为的补码记为XX补。补。正数的补码同原码。正数的补码同原码。负数的补码的数值部分为真值的各位按位取反加负数的补码的数值部分为真值的各位按位取反加1 1。微微机机原理及应用原理及应用原码:n最高位为符号位,用“0”表示正,用“1”表示负;其余为真值部分n优点: 真值和其原码表示之间的对应关系简单,容易理解n缺点: 计算机中用原码进行加减运算比较困难,0的表示不唯一 8位数位数0的原码:的原码:+0=0 0000000 -0=1 0000000微微机机原理及应用原理及应用对一个机器数对一个机器

17、数X:n若若X0 ,则则 X反反=X原原n若若X0, 则则X补补= X反反= X原原若若X0, 则则X补补= X反反+1例例: X= 52= 0110100 X原原=10110100 X反反=11001011 X补补= X反反+1=11001100微微机机原理及应用原理及应用负数三种编码之间的转换关系负数三种编码之间的转换关系微微机机原理及应用原理及应用0 0的补码:的补码:表示唯一表示唯一+0补= +0原=00000000-0补= -0反+1=11111111+1 =1 00000000 对8位字长,进位被舍掉微微机机原理及应用原理及应用特殊数特殊数1000000010000000n该数在该

18、数在原码原码中定义为:中定义为: -0 -0n在在反码反码中定义为:中定义为: -127 -127n在在补码补码中定义为:中定义为: -128 -128n对对无符号无符号数,(数,(1000000010000000)B B=128=128微微机机原理及应用原理及应用带符号数的表示范围:对对8位二进制数:位二进制数:n原码:原码: -127 +127n反码:反码: -127 +127n补码:补码: -128 +127符号二进制数与十进制的转换对用补码表示的二进制数转换成十进制:对用补码表示的二进制数转换成十进制: 1)求出真值)求出真值 2)进行二)进行二十转换十转换微微机机原理及应用原理及应用

19、 例例 :将一个用补码表示的二进制数转换为十进制数将一个用补码表示的二进制数转换为十进制数nX补补=0 0101110B 真值为:真值为:0101110B 正数正数 所以:所以:X=+46nX补补=1 1010010B 真值为:真值为:-0101110B 负数负数 从而有:从而有:X=X补补补补=11010010补补 =-0101110 =-46微微机机原理及应用原理及应用2. 2. 符号数的算术运算符号数的算术运算n通过引进补码,可将减法运算转换为加法运算通过引进补码,可将减法运算转换为加法运算 即:即:X+Y补补=X补补+Y补补 X-Y补补=X+(-Y)补补 =X补补+-Y补补微微机机原理

20、及应用原理及应用 例例 :X=-0110100,Y=+1110100,求求X+Y=?nX原原=10110100 nX补补= X反反+1=11001100nY补补= Y原原=01110100n所以:所以: X+Y补补= X补补+ Y补补 =11001100+01110100 =01000000无论正负,真值不变无论正负,真值不变微微机机原理及应用原理及应用3. 符号数运算中的溢出问题n溢出判定准则:溢出判定准则:两个同符号二进制数相加或两个同符号二进制数相加或异符号数相减时,若最高位进位异符号数相减时,若最高位进位 次高位进次高位进位位1,则结果产生溢出。,则结果产生溢出。思考:有符号数与无符号

21、数在溢出判定上有何不同?微微机机原理及应用原理及应用 例例 :若:若:X=01111000, Y=01101001 则:则:X+Y= 注意:注意: 次高位向最高位有进位,而最高位向前次高位向最高位有进位,而最高位向前无进位,产生溢出。(事实上,两正数相加得出无进位,产生溢出。(事实上,两正数相加得出负数,结果出错)负数,结果出错)微微机机原理及应用原理及应用2 2. .4 4 二进制编码二进制编码nBCDBCD码:码:用二进制编码表示的十进制数用二进制编码表示的十进制数 ,计数规律与十进制相同,计数规律与十进制相同“逢十进一逢十进一” nASCIIASCII码:码:美国国家标准信息交换码,用美

22、国国家标准信息交换码,用七位二进制编码表示七位二进制编码表示128128个字符和符号个字符和符号微微机机原理及应用原理及应用BCDBCD码码n压缩压缩BCD码码 用用4位二进制码表示一位十进制数位二进制码表示一位十进制数n扩展扩展BCD码码 用用8位二进制码表示一位十进制数位二进制码表示一位十进制数微微机机原理及应用原理及应用BCDBCD码与二进制数之间的转换码与二进制数之间的转换n先转换为十进制数,再转换二进制数;反之亦然先转换为十进制数,再转换二进制数;反之亦然n例例:(:(0001 0001 .0010 0101)BCD =11 .25 =(1011 .01) B微微机机原理及应用原理及

23、应用ASCIIASCII码码n字符的编码,一般用字符的编码,一般用7位二进制码表示。在位二进制码表示。在需要时可在需要时可在D7位加校验位。位加校验位。n熟悉熟悉0F的的ASCII码码微微机机原理及应用原理及应用ASCIIASCII码的校验码的校验n奇校验奇校验 加上校验位后编码中加上校验位后编码中“1”的个数为奇数。的个数为奇数。 例:例:A的的ASCII码是码是41H(1000001B),), 以奇校验传送则为以奇校验传送则为C1H(11000001B)n偶校验偶校验 加上校验位后编码中加上校验位后编码中“1”的个数为偶数。的个数为偶数。 A若以偶校验传送则为若以偶校验传送则为41H (0

24、1000001B)微微机机原理及应用原理及应用2.5 计算机中常用术语计算机中常用术语nbitn1Mb=1024 1024bit=220bitn1Gb=230bit=1024Mbn1Tb=240bit=1024GbnByten1 Byte=8bit,1KB=1024 Bytenword:表示字长,有表示字长,有1bit,4bit,8bit等等微微机机原理及应用原理及应用2. 5 溢出及其判断方法溢出及其判断方法 1. 进位与溢出进位与溢出 所谓进位,是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。 溢出是指带符号数的补码运算溢出,用来判

25、断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为n位的带符号数,它能表示的补码范围为2n1+2n11,如果运算结果超出此范围,就叫补码溢出,简称溢出。 微微机机原理及应用原理及应用 2. 溢出的判断方法溢出的判断方法 判断溢出的方法很多,常见的有: 通过参加运算的两个数的符号及运算结果的符号进行判断。 单符号位法。该方法通过符号位和数值部分最高位的进位状态来判断结果是否溢出。 双符号位法,又称为变形补码法。它是通过运算结果的两个符号位的状态来判断结果是否溢出。 上述三种方法中,第一种方法仅适用于手工运算时对结果是否溢出的判断,其他两种方法在计算机中都有使用。限于篇幅,本节仅通过

26、具体例子对第种方法做简要介绍。 微微机机原理及应用原理及应用 若符号位进位状态用CF来表示,当符号位向前有进位时,CF=1,否则,CF=0;数值部分最高位的进位状态用DF来表示,当该位向前有进位时,DF=1,否则,DF=0。单符号位法就是通过该两位进位状态的异或结果来判断是否溢出的。 (2.2.7) 若OF=1,说明结果溢出;若OF=0,则结果未溢出。也就是说,当符号位和数值部分最高位同时有进位或同时没有进位时,结果没有溢出,否则,结果溢出。 微微机机原理及应用原理及应用 例2.13 设有两个操作数x=01000100B,y=01001000B,将这两个操作数送运算器做加法运算,试问: 若为无

27、符号数,计算结果是否正确? 若为带符号补码数,计算结果是否溢出? 解解 无符号数 带符号数 01000100 68 +68补+)01001000 +)72 +) +72补 10001100 140 +140补DF=1CF=0微微机机原理及应用原理及应用 若为无符号数,由于CF=0,说明结果未超出8位无符号数所能表达的数值范围(0255),计算结果10001100B为无符号数,其真值为140,计算结果正确。 若为带符号数补码,由于=1,结果溢出;这里也可通过参加运算的两个数的符号及运算结果的符号进行判断,由于两操作数均为正数,而结果却为负数,因而结果溢出;+68和+72两数补码之和应为+140的

28、补码,而8位带符号数补码所能表达的数值范围为128+127,结果超出该范围,因此结果是错误的。 微微机机原理及应用原理及应用 例例2.14 设有两个操作数x=11101110B,y=11001000B,将这两个操作数送运算器做加法运算,试问: 若为无符号数,计算结果是否正确? 若为带符号补码数,计算结果是否溢出? 解解 无符号数 带符号数 11101110 68 +68补+)11001000 +)72 +) +72补 10110110 140 +140补DF=1CF=01自动丢失 微微机机原理及应用原理及应用 例题讲解例题讲解例例1 1 : : 完成下列各式补码数的运算,并根据结果设置标志位完

29、成下列各式补码数的运算,并根据结果设置标志位SFSF、ZFZF、CFCF和和OF,OF,指出运算结果有效否。指出运算结果有效否。 0100,1001+ 1001, 1101 1110,0110(1)0100,1001b + 1001,1101b 解:解:SFZFCFOF1000运算结果有效运算结果有效返回返回(2)0100,0001b - 1010,1011b 解:解: 0100,0001+ 0101, 0101 1001,0110SFZFCFOF1011运算结果无效运算结果无效1010,10110101, 0101求补求补微微机机原理及应用原理及应用 例题讲解例题讲解(3)A95Bh + 8

30、CA2hSFZFCFOF0001运算结果无效运算结果无效 A 9 5 B+ 8 C A 2 3 5 F D 解:解:1返回返回(4)6531h - 42DAh 解:解:SFZFCFOF0010运算结果有效运算结果有效 6 5 3 1+ B D 2 6 2 2 5 7142DABD26求补求补微微机机原理及应用原理及应用例例2 : 把字符串把字符串“PART1:Memory”存放在存放在1100 开始的存储区开始的存储区中,请写出字符串的存储情况。中,请写出字符串的存储情况。 例题讲解例题讲解 解:解: P A R T 1 : M e m o r y ASCII码:码: 50 41 52 54

31、31 3A 4D 65 6D 6F 72 79 地址:地址: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 110A 110BIBM PC 的存储器按字节编址,一个的存储器按字节编址,一个ASCII码占用一个字节码占用一个字节返回返回字符:字符:微微机机原理及应用原理及应用例例3 3 : : 写出十进制数写出十进制数35903590的非压缩的非压缩BCDBCD码和压缩的码和压缩的BCDBCD码,码, 并分别把它们存入数据区并分别把它们存入数据区UNPAKUNPAK和和PAKED.PAKED. 例题讲解例题讲解 解:解:0 00 90 50

32、3 UNPAK + 0 + 1 + 2 + 3 + 0 + 19 0PAKED3 5返回返回微微机机原理及应用原理及应用 习习 题题6 6、有一个、有一个1616位的数值位的数值01010101,00000000,01000100,00110011: (1 1)如果它是一个二进制数,和它等值的十进制数是多少?)如果它是一个二进制数,和它等值的十进制数是多少?(2 2)如果它们是)如果它们是ASCIIASCII码字符,则是什么字符?码字符,则是什么字符?(3 3)如果它们是压缩的)如果它们是压缩的BCDBCD码,它表示的数是什么?码,它表示的数是什么?2054720547答:答:答:答:PC P

33、C 答答:50435043微微机机原理及应用原理及应用 习习 题题1、用降幂法和除法将下列十进制数转换为二进制数和、用降幂法和除法将下列十进制数转换为二进制数和16进制数。进制数。(1) 369(2) 32767101110001 1000 0000 0000 00018001 171二进制二进制答:答:16进制进制二进制二进制16进制进制答:答:微微机机原理及应用原理及应用 习习 题题2、将下列二进制数转换为、将下列二进制数转换为16进制数和十进制数。进制数和十进制数。(1) 101101(2) 11111111十进制十进制答:答:16进制进制452D十进制十进制答:答:16进制进制255FF微微机机原理及应用原理及应用3 3、什么叫原码、反码及补码?、什么叫原码、反码及补码?答案答案:凡是二进制的数都称为原码;原码的各位都取其非凡是二进制的数都称为原码;原码的各位都取其非值则称为反码;补码则等于反码加值则称为反码;补码则等于反码加1 1。 习习 题题

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号