带符号的二进制数的表示方法及加减法运算

上传人:平*** 文档编号:47269419 上传时间:2018-07-01 格式:PPT 页数:34 大小:625.52KB
返回 下载 相关 举报
带符号的二进制数的表示方法及加减法运算_第1页
第1页 / 共34页
带符号的二进制数的表示方法及加减法运算_第2页
第2页 / 共34页
带符号的二进制数的表示方法及加减法运算_第3页
第3页 / 共34页
带符号的二进制数的表示方法及加减法运算_第4页
第4页 / 共34页
带符号的二进制数的表示方法及加减法运算_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《带符号的二进制数的表示方法及加减法运算》由会员分享,可在线阅读,更多相关《带符号的二进制数的表示方法及加减法运算(34页珍藏版)》请在金锄头文库上搜索。

1、 机器数:在机器中使用的连同数符一起代码化的数。3.2 带符号二进制数 的表示方法及加减法运算一、带符号二进制数的表示 真值(X):一个数本身(它所代表的实际值)。 机器数有三种表示方式:原码、补码和反码。 为讨论方便,先假设机器数为小数,格式:符号位 小数点 数值1/34 最高位为符号位,0表示正数,1表示负数。 数值部分用绝对值形式表示。1. 原码表示法真值XX原+0.10110.1011-0.10111.10110000.00001.00002/34 最高位为符号位,0表示正数,1表示负数。 若真值为正数:数值部分与原码相同;若真值为负数:数值部分为原码各位取反, 并且末位再1。2. 补

2、码表示法真值XX补+0.10110.1011-0.10111.01010000.00000.00003/34 最高位为符号位,0表示正数,1表示负数; 若真值为正数:数值部分与原码相同;若真值为负数:数值部分为原码各位取反。 3. 反码表示法真值XX反+0.10110.1011-0.10111.01000000.00001.11114/341.0100 1.1011 1.11000.1111 0.1111 0.11111.1010 1.0101 1.01100.1010 0.1010 0.1010 举例真值X机器数X原X反X补+0.1010-0.1010+0.1111-0.01005/343.

3、 不同码制间的相互转换X原X补0.101001.101111.01010.11101.010101.101110.10100X原X反0.101001.101111.01010.11101.010101.101111.010011.10110.11101.101101.010010.101001.010001.10100.11101.101011.010006/3401010 01010 01010 11010 10101 10110 4. 整数的表示形式X=Xn X2 X1 X0Xn符号位 举例真值X机器数X原X反X补+1010-1010 7/34溢出:运算结果超出机器数所能表示的范围。 两个

4、异号数相加或两个同号数相减,不会溢出。 两个同号数相加或两个异号数相减,有可能溢出。1. 溢出判断的三种方法二、补码加减法运算8/34 设:fA:操作数A的符号位fB:操作数B的符号位fS:结果S的符号位Cf: fA、fB参与运算所产生的进位 9+3=120 1 0 0 1+ 0 0 0 1 10 1 1 0 0 -11-7= -181 0 1 0 1+ 1 1 0 0 11 0 1 1 1 0 11+7=180 1 0 1 1+ 0 0 1 1 11 0 0 1 0正溢(上溢) 负溢(下溢) 无溢出 无溢出 -9-3= -121 0 1 1 1+ 1 1 1 0 11 1 0 1 0 09/

5、34 方法一 正正 负 负负 正10/34 方法二 C与Cf不相同,则溢出。11/34 方法三(常用) 采用双符号位fS1fS2。正数为00,负数为11。 当结果的两个符号位fS1和fS2不相同时,为溢出。12/34 运算结果的双符号位可能是:00:结果为正,无溢出01:正溢(大于机器所能表示的最大正数)10:负溢(小于机器所能表示的最小负数)11:结果为负,无溢出 “变形补码”(双符号位是模4补码)采用多符号位的补码。13/34 参与运算的数是补码,其结果仍是补码。符号位与数值位一样参与运算。 X+Y补=X补+Y补 X-Y补 = X+ (-Y)补= X补+-Y补 已知Y补求-Y补的方法:将Y

6、补连同符号位一起取反,末位再加1。2. 补码运算基础14/34例1:X=+0.10101 Y=+0.01010例2:X=+0.1011 Y=-0.1010例3:X=-0.1010 Y=-0.0101例4:X=+0.1001 Y=+0.11013. 补码加法运算(X+Y=?)X+Y补=00.11111 无溢出X+Y补=100.0001 无溢出X+Y补=111.0001 无溢出X+Y补=01.0110 正溢15/34 例1:X=+0.1100 Y=+0.01114. 补码减法运算(X-Y=?)解:X补=00.1100 Y补=00.0111-Y补=11.100100.1100+ 11.1001100

7、.0101 X-Y补= 00.0101 X-Y= +0.0101 (无溢出)16/34 例2:X=-0.1100 Y=-0.0110解:X补=11.0100 Y补=11.1010-Y补=00.011011.0100+ 00.011011.1010 X-Y补= 11.1010 X-Y= -0.0110 (无溢出)17/34按照机器数的小数点位置是否固定,把数分为: 定点数 浮点数三、定点数和浮点数18/34所有数据的小数点位置固定不变。 定点小数 X0.X1X2Xn 符号位 数值部分(尾数) 定点整数 X0X1X2Xn.1. 定点数19/34小数点位置可浮动的数据。 浮点数通常表示为:N=MRE

8、 N:浮点数,M:尾数,E:阶码,R:阶的基数(底),常数(一般为2、8或16)。2. 浮点数(1)20/34 一台计算机中所有数据的R都相同,不需表示出来。因此,浮点数的机内表示一般采用以下形式: MSEMMS:1位,是尾数的符号位,在最高位上。E:阶码,一般为整数, n+1位(1位阶符、n位阶值)。M:尾数,m位(由MS和M组成一个定点小数)。21/34 例如(设机器字长16位、用原码表示)1010010011100000-1001.11:01011110100000000.0001101:尾符 阶符 尾数值阶值22/34 整个浮点数的正负由什么决定? 阶码部分位数越多,数的范围越大or小

9、? 浮点数运算前要先对齐小数点,如何判断?尾符大判断两个数的阶码是否相等23/34 常用的浮点数有两种格式: 单精度浮点数(32位),阶码8位,尾数24位(内含1位符号位)。 双精度浮点数(64位),阶码11位,尾数53位(内含1位符号位)。24/34规格化:为了提高运算精度,要使尾数的有效数字尽可能占满已有的位数。(2) 浮点数的规格化 0 M1/2 1/2M1 1 M2 未规格化 已规格化 溢出 浮点数经过运算后,其尾数(M)的数值范围有3种可能(二进制): 25/34 判断任何进制的浮点数规格化的重要标志: 尾数最高位上的数字不是0(负数的补码、反码反之)26/34 浮点非规格化数的处理

10、将尾数左移或右移,并修改阶码值使之满足 规格化要求。例如:假设浮点数的尾数为0.0011,阶码为0100(设定R=2),如何规格化?答:将尾数左移2位,而成为0.1100,阶码减去(10)2,修改成0010,此时,浮点数的值保持不变。27/34例如:设X=(35/512)10,将它表示为二进制 定点数(16位)和浮点规格化数(阶4位尾12位)。答: X=( 35/512)10= (0.000100011)2X的定点表示为:X=0.000100011000000X的浮点规格化表示为:X=0.100011000002101128/34 机器零 计算机都把该浮点数看成零值,称为机器零。 一个浮点数的

11、尾数为0时(不论阶码是何值); 或阶码的值比机器能表示的最小值还小时。29/34尾数用补码表示,阶码用补码或移码表示。 (3) 浮点数的表示 最高位为符号位,1表示正数,0表示负数。 若真值为正数:数值部分与原码相同;若真值为负数:数值部分与补码相同。 移码 (只表示整数)30/34真值XX移+01101-01101-110100010110101001100011100001000031/34 移码与补码的关系真值XX补X移+1011-101101011110111010100101把X补的符号位取反,即得X移。32/34 数值范围:机器所能表示的一个数的最大值和最小值之间的范围。 数据精度:一个数的有效位数。(4) 计算机中数据的表示范围与精度33/34 例如 32位定点数(补码) 定点小数的数值范围: ,定点整数的数值范围: ,数据精度为 位。 32位单精度浮点数(阶码8位、尾数24位)数值范围: ,精度为 位。-11-2-31 -231231-1 31-2127(1-2-23)2127 24和定点数相比,浮点数牺牲了精度、扩大了范围。34/34

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

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