计算机组成原理第二章第3讲数的机器码表示.ppt_第1页
计算机组成原理第二章第3讲数的机器码表示.ppt_第2页
计算机组成原理第二章第3讲数的机器码表示.ppt_第3页
计算机组成原理第二章第3讲数的机器码表示.ppt_第4页
计算机组成原理第二章第3讲数的机器码表示.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、.1.2数的机器码表示(简化版),2.1.2数的机器码表示(简化版),例:写出下列各真值定点位的原码、反码、补码、移码表示。 (27)10 (103)10 (0.01101)2 (23/64)10,2.1.2数的机器码表示(简化版),(27)10 = (+11011)2 原码:0001 1011 反码:0001 1011 补码:0001 1011 移码:1001 1011,2.1.2数的机器码表示(简化版),(103)10 = (1100111)2 原码:1110 0111 反码:1001 1000 补码:1001 1001 移码:0001 1001,2.1.2数的机器码表示(简化版),(0.

5、01101)2 原码:1.011 0100 反码:1.100 1011 补码:1.100 1100 移码:0.100 1100 说明:式子中的小数点只为人们方便查看是小数之用,实际的机器中并不会保存。,2.1.2数的机器码表示(简化版),(23/64)10 = (0.010111)2 原码:1.010 1110 反码:1.101 0001 补码:1.101 0010 移码:0.101 0010,2.1.2数的机器码表示(完整版),用公式的形式描述原码反码补码和移码,1、原码表示法定点整数,定点整数X0X1X2Xn(x0为符号位) x原= x 2nx0 2n-x 0 x -2n 说明: 有正0和

6、负0之分 范围 - (2n -1) 2n 1 例: x=+11001110 n=8 x原=011001110 -x原=111001110,X为负,-x相当于加上其绝对值,1、原码表示法定点小数,定点小数x0.x1x2xn x原= x 1x0 1-x 0 x -1 有正0和负0之分 范围-(1-2-n)1- 2-n 例: x=+0.11001110 x原= 0.11001110 -x原= 1.11001110,17,原码表示定点小数的临界值,1、原码表示法,原码特点: 表示简单,易于同真值之间进行转换,实现乘除运算规则简单。 进行加减运算十分麻烦。,定点小数表示: x0. x1 x2 xn 定义

7、: 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 =100000000-1-1011011 =10100100,3 、补码,补码是在“模”和“同余”的概念下导出的。 “模”是指一个计量系统的计量范围,即产生“溢出”的量。 以时钟为例,如下页图: 5-2=3, 5+10=3 -2和10同余,以12为模

8、时钟定位在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的补码 就是10。 一个负数用其补码代替,同样可以得到正确的运算结果。 借用补码机制,可在计算机运算中将减法转换为加法运算。,3 、补码,具体地, 在计算机中,机器能表示的数据位数是一定的,其运算都是有模运算。如果

9、是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 2n - 1,3 、补码,定点小数 定点小数x0.x1x2.xn,以2为模 x补= x 1x0 2+x 0 x -1 示数范围:-11-2-n,3 、补码,例:x X补=28+X =1

10、00000000 + (-1101001) =10010111 x X补=2+X =10+(-0.1101001) =1.0010111,3 、补码,例: x= -0.1011 x补=10+x =10.0000-0.1011 =1.0101 y=-0.01111 y补=10+y =10.00000-0.01111 =1.10001,3 、补码,思考: 如何通过补码求原码? 例如上题例子。,由补码求原码,依照用原码求补码的方法。 规则相同!,4 、移码,常用的是针对定点有符号整型数据 x=x0 x1x2xn,移码的定义是 移2n,2n 2n 移码的性质: 最高位为符号位。 0有唯一编码。 保持了

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

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

13、-0.1101011 x6= 0.1000101,例:写出下列定点8位机器码的真值。 x7补1.0000000 x8补10000000 解: x7= -1 X8= -128,例:写出下列定点8位机器码的真值。 x9补00000001 x10补10110011 解: x9= 1 x10= -1001101,例:写出下列定点8位机器码的真值。 x11移1.0010101 x12移0.0000101 解: x11= 0.0010101 x12= -0.1111011,2.1.2数的机器码表示,【例2.7】将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。,补码形

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

15、+ 1111 1110 = 1111 1111 1 + (-2) = -1,2.1.2数的机器码表示,【例2.6】以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。,2.1.2数的机器码表示,【例8】设机器字长16位,定点表示,尾数15位,数符1位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多少? 如果均改用补码,是何情况?,2.1.2数的机器码表示,解答: (1)定点原码整数表示 最大正数值(2151)10(32767)10 最小负数值(2151)10(32767)10 (2)定点原码小数表

16、示 最大正数值(1215)10 (0.111.11)2 最小负数值(1215)10 (0.111.11)2,2.1.2数的机器码表示,(3):改为补码: 最大正 最小负 定点整数: 215-1 -215 32767 -32768 定点小数: 1-2-15 -1,2.1.2数的机器码表示,回想:C语言中的几个变量定义 short:半个机器字长,16位: -3276832767 int:一个机器字长,32位: -21474836482147483647 long:两个机器字长,64位 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 (对于32位机),2.1.2数的机器码表示,【例9】假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为(非IEEE754标准):(1)s (1.M) 2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,移码,原码,2.1.2数的机器码表示,1个字节 真值最大的补码: 0111 1111 最小的补码: 1 000 0000 1个字节 真值最大的移码: 1 111 1111 最小的移码 0 000 0000,2.1.2数的机器码表示,回顾: 对于1个字节空间 整数移码的计算方法: x移=27+x E=1000 0000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论