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

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

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 (对于3。

17、2位机),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 + x =128+x 所以 x=E-128,2.1.2数的机器码表示,(1)最大正数 0 1111 1111 111 1111 1111 1111 1111 1111 22-232127 (2)最小正数 0 0000 0000 0000 0000 0000 0000 0000 000 1.02128 (3)最小负数 1 1111 1111 1111 1111 1111 1111 1111 111 22232127 (4)最大负数 1 0000 0000 0000 0000 0000 0000 0000 000 1.02128。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值