计算机组成原理第二章第3讲数的机器码表示.ppt

上传人:小飞机 文档编号:6606690 上传时间:2023-11-17 格式:PPT 页数:55 大小:279.50KB
返回 下载 相关 举报
计算机组成原理第二章第3讲数的机器码表示.ppt_第1页
第1页 / 共55页
计算机组成原理第二章第3讲数的机器码表示.ppt_第2页
第2页 / 共55页
计算机组成原理第二章第3讲数的机器码表示.ppt_第3页
第3页 / 共55页
计算机组成原理第二章第3讲数的机器码表示.ppt_第4页
第4页 / 共55页
计算机组成原理第二章第3讲数的机器码表示.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《计算机组成原理第二章第3讲数的机器码表示.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第二章第3讲数的机器码表示.ppt(55页珍藏版)》请在三一办公上搜索。

1、数的机器码表示,数的机器码表示,一、数的机器码表示真值:数值数据的实际值如:-33,1011B,257 等机器码:数值数据在计算机内的编码表示机器码的种类:原码 反码补码 移码为什么要提出机器码?要解决在计算机内部数的正、负符号和小数点运算问题。,数的机器码表示,具体地:在计算机中对数据进行运算操作时,符号位的表示,符号位是否也同数值位一道参加运算?如何参加运算?为了妥善的处理好这些问题,就需要把符号位和数字位一起编码表示数据,为适应不同的处理要求,产生了多种数据编码方法,如原码、补码、反码、移码等。,数的机器码表示,原码、补码、反码的共性:1)这几种编码表示中,正数的编码值与真值一样,负数具

2、有不同的编码。2)编码的最高位为符号位:0表示正1表示负,数的机器码表示(简化版),1、原码表示法符号位:0表示正,1表示负 数值部分:与真值的二进制形式一样原码的特征:1)零有两种表示:0和0+0原=0.000.0-0原=1.000.0 2)优点:简单直观,便于乘、除法运算 缺点:加减法运算不便(符号不能直接参与运算),数的机器码表示(简化版),2、反码表示法符号位:0表示正,1表示负 数值部分:正数不变;负数反码是将真值的各位取反得到反码的特征:1)零有两种表示:0和00反0.00.00反1.11.12)通常用于求补码,是个过渡编码,数的机器码表示(简化版),3、补码表示法 符号位:0表示

3、正,1表示负数值部分:正数不变;负数通过求补得到。补码的特征:1)零的表示唯一2)补码加减法运算中,符号直接参与运算3)定点小数表示中,-1补1.000,数的机器码表示(简化版),、移码表示法 移码通常用于表示浮点数的阶码。阶码是个n位的整数。对于正数,符号位为1,其余位不变(+1110001-11110001);对于负数,符号位为0,其余位取反,最后加1(-1110001-00001111)。符号位:1表示正,0表示负数值部分:与补码数值部分相同,数的机器码表示(简化版),数的机器码表示(简化版),例:写出下列各真值定点位的原码、反码、补码、移码表示。(27)10(103)10(0.0110

4、1)2(23/64)10,数的机器码表示(简化版),(27)10=(+11011)2原码:0001 1011反码:0001 1011补码:0001 1011移码:1001 1011,数的机器码表示(简化版),(103)10=(1100111)2 原码:1110 0111反码:1001 1000补码:1001 1001移码:0001 1001,数的机器码表示(简化版),(0.01101)2原码:1.011 0100反码:1.100 1011补码:1.100 1100移码:0.100 1100说明:式子中的小数点只为人们方便查看是小数之用,实际的机器中并不会保存。,数的机器码表示(简化版),(23

5、/64)10=(0.010111)2 原码:1.010 1110反码:1.101 0001补码:1.101 0010移码:0.101 0010,数的机器码表示(完整版),用公式的形式描述原码反码补码和移码,1、原码表示法定点整数,定点整数X0X1X2Xn(x0为符号位)x原=x 2nx0 2n-x 0 x-2n说明:有正0和负0之分范围-(2n-1)2n 1例:x=+11001110 n=8x原=011001110-x原=111001110,X为负,-x相当于加上其绝对值,1、原码表示法定点小数,定点小数x0.x1x2xnx原=x 1x0 1-x 0 x-1 有正0和负0之分范围-(1-2-n

6、)1-2-n例:x=+0.11001110 x原=0.11001110-x原=1.11001110,17,原码表示定点小数的临界值,1、原码表示法,原码特点:表示简单,易于同真值之间进行转换,实现乘除运算规则简单。进行加减运算十分麻烦。,定点小数表示:x0.x1 x2 xn 定义:X 反=定点整数表示:x0 x1 x2 xn定义:X 反=,X,(2-2-n)+X,0 X 1,-1 X 0,X,(2n+1 1)+X,0 X 2n,-2n X 0,2、反码,2、反码,Eg x=+1011011 x原=01011011 用1个字节存储 x反=01011011 x=-1011011 x反=28-1+x

7、=100000000-1-1011011=10100100,3、补码,补码是在“模”和“同余”的概念下导出的。“模”是指一个计量系统的计量范围,即产生“溢出”的量。以时钟为例,如下页图:5-2=3,5+10=3-2和10同余,以12为模时钟定位在12点,向后退2个小时和向前拨10个小时得到的效果是相同的,3、补码,现在是北京时间3点整,而时钟却指向5点。5-2=3 5+10=3(5+10=15,15-12=3,12自动丢失。12就是模),3、补码,继续推导:5-2=5+10(MOD 12)5+(-2)=5+10(MOD 12)-2=10(MOD 12)结论:可以说:在模为12的情况下,-2的补

8、码 就是10。一个负数用其补码代替,同样可以得到正确的运算结果。借用补码机制,可在计算机运算中将减法转换为加法运算。,3、补码,具体地,在计算机中,机器能表示的数据位数是一定的,其运算都是有模运算。如果是n位整数,其模为2n+1。如果是n位小数,其模为2。若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。,3、补码,定义:正数的补码就是正数的本身,负数的补码是原负数加上模。计算机运算受字长限制,属于有模运算.,3、补码,定点整数定点整数x0 x1x2.xn以2n+1为模x补=x 2n x0 2n+1+x 0 x-2n示数范围:-2n 2

9、n-1,3、补码,定点小数定点小数x0.x1x2.xn,以2为模x补=x 1x0 2+x 0 x-1示数范围:-11-2-n,3、补码,例:x X补=28+X=100000000+(-1101001)=10010111x X补=2+X=10+(-0.1101001)=1.0010111,3、补码,例:x=-0.1011 x补=10+x=1.0101y=-0.01111y补=10+y=1.10001,3、补码,思考:如何通过补码求原码?例如上题例子。,由补码求原码,依照用原码求补码的方法。规则相同!,4、移码,常用的是针对定点有符号整型数据x=x0 x1x2xn,移码的定义是移2n,2n 2n移

10、码的性质:最高位为符号位。0有唯一编码。保持了数据原有的大小顺序。移码只用于浮点数的阶码部分,故一般只用于表示整数。,4、移码,若一定要表示小数:x=x0.x1x2xn,移码的定义是移1,(1-2-n)1-2-n,4、移码,eg.X=+000 0111(1个字节存储)x移=27+0000111=10000000+0000111=1000 0111X=-100 0111x移=27-100 0111=1000 0000 100 0111=0011 1001,机器码表示练习题,例:写出下列定点8位机器码的真值。x1原0.0110101x2原10000101x3反1.1010101 x4反0.0000

11、101x5补1.0010101 x6补0.1000101x7补1.0000000 x8补100000000 x9补00000001 x10补10110011x11移1.0010101 x12移0.0000101,例:写出下列定点8位机器码的真值。x1原0.0110101x2原10000101解:x1=0.0110101x2=-101,例:写出下列定点8位机器码的真值。x3反1.1010101 x4反0.0000101解:X3=-0.0101010X4=0.0000101,例:写出下列定点8位机器码的真值。x5补1.0010101 x6补0.1000101解:x5=-0.1101011x6=0.

12、1000101,例:写出下列定点8位机器码的真值。x7补1.0000000 x8补10000000解:x7=-1X8=-128,例:写出下列定点8位机器码的真值。x9补00000001 x10补10110011解:x9=1x10=-1001101,例:写出下列定点8位机器码的真值。x11移1.0010101 x12移0.0000101解:x11=0.0010101x12=-0.1111011,数的机器码表示,【例2.7】将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。,补码形式的八位二进制数的示数范围讨论:符号位1位,数值位7位即-27 27-1-128

13、127-128怎样表示?,数的机器码表示,到底为什么这么折腾?非要搞个补码出来?补码的设计目的是:使符号位能与有效值部分一起参加运算,从而简化运算规则。使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。消除正零负零干扰,最大负数向外拓展1位。所有这些转换都是在计算机的最底层进行的。,数的机器码表示,举例:一个字节内的加减运算若直接用原码:0000 0001+1000 0010=1000 0011 1+(-2)=-3用补码:0000 0001+1111 1110=1111 1111 1+(-2)=-1,数的机器码表示,【例2.6】以定点整数为例,用数轴形式说明原码、反码、补码表示范围

14、和可能的数码组合情况。,数的机器码表示,【例8】设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?如果均改用补码,是何情况?,数的机器码表示,解答:(1)定点原码整数表示最大正数值(2151)10(32767)10最小负数值(2151)10(32767)10(2)定点原码小数表示 最大正数值(1215)10(0.111.11)2最小负数值(1215)10(0.111.11)2,数的机器码表示,(3):改为补码:最大正 最小负定点整数:215-1-215 32767-32768

15、定点小数:1-2-15-1,数的机器码表示,回想:C语言中的几个变量定义short:半个机器字长,16位:-3276832767int:一个机器字长,32位:-21474836482147483647long:两个机器字长,64位-9,223,372,036,854,775,808 9,223,372,036,854,775,807(对于32位机),数的机器码表示,【例9】假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为(非IEEE754标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,移码,原码,数的机

16、器码表示,1个字节 真值最大的补码:0111 1111最小的补码:1 000 00001个字节 真值最大的移码:1 111 1111最小的移码0 000 0000,数的机器码表示,回顾:对于1个字节空间 整数移码的计算方法:x移=27+xE=1000 0000+x=128+x所以 x=E-128,数的机器码表示,(1)最大正数0 1111 1111 111 1111 1111 1111 1111 111122-232127(2)最小正数 0 0000 0000 0000 0000 0000 0000 0000 0001.02128(3)最小负数1 1111 1111 1111 1111 1111 1111 1111 11122232127(4)最大负数1 0000 0000 0000 0000 0000 0000 0000 0001.02128,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号