第3章_(3[1].2_带符号的二进制数的表示方法及加减法运算)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解:[X]补=00.1100
[Y]补=00.0111
[-Y]补=11.1001
00.1100
+ 11.1001
100.0101
∴ [X-Y]补= 00.0101 X-Y= +0.0101
(无溢出)
16/34
16
★ 例2:X=-0.1100 Y=-0.0110
解:[X]补=11.0100
[Y]补=11.1010
1.10110 1.01010
1.10101 1.01010
1.01001 1.10111
1.01000 1.10111
6/34
6
4. 整数的表示形式
X=Xn … X2 X1 X0
Xn--符号位
★ 举例
真值X +1010
机器数 [X]原 [X]反 [X]补 01010 01010 01010 01010
+0
0
-0
0.0000 0.0000
4/34
4
★ 举例
真值X +0.1010 -0.1010 +0.1111 -0.0100
机器数 [X]原 [X]反 [X]补 0.1010 0.1010 0.1010 0.1010 1.1010 1.1010 1.0101 1.0110 0.1111 0.1111 0.1111 0.1111 1.0100 1.0100 1.1011 1.1100
★ 定点小数
X0.X1X2…Xn
符号位 数值部分(尾数)
★ 定点整数
X0X1X2…Xn.
19/34
19
2. 浮点数 小数点位置可浮动的数据。
(1) ★ 浮点数通常表示为:N=M·RE
N:浮点数,M:尾数,E:阶码, R:阶的基数(底),常数(一般为2、8或16)。
20/34
20
★ 一台计算机中所有数据的R都相同,不需 表示出来。因此,浮点数的机内表示一般 采用以下形式:
MS
E
M
MS:1位,是尾数的符号位,在最高位上。 E:阶码,一般为整数, n+1位(1位阶符、n位阶值)。 M:尾数,m位(由MS和M组成一个定点小数)。
[-Y]补=00.0110
11.0100
+ 00.0110
11.1010
∴ [X-Y]补= 11.1010 X-Y= -0.0110
(无溢出)
17/34
17
三、定点数和浮点数
按照机器数的小数点位置是否固定,把数分为: ★ 定点数 ★ 浮点数
18/34
18
1. 定点数 所有数据的小数点位置固定不变。
无溢出
★例2:X=+0.1011 Y=-0.1010 [X+Y]补=100.0001
无溢出
★例3:X=-0.1010 Y=-0.0101 [X+Y]补=111.0001
无溢出
★例4:X=+0.1001 Y=+0.1101 [X+Y]补=01.0110
15/34
正溢
15
4. 补码减法运算(X-Y=?) ★ 例1:X=+0.1100 Y=+0.0111
★ [X+Y]补=[X]补+[Y]补 ★ [X-Y]补 = [X+ (-Y)]补= [X]补+[-Y]补 ★ 已知[Y]补求[-Y]补的方法:
将[Y]补连同符号位一起取反,末位再加1。
14/34
14
3. 补码加法运算(X+Y=?) ★例1:X=+0.10101 Y=+0.01010
[X+Y]补=00.11111
3.2 带符号二进制数 的表示方法及加减法运算
一、带符号二进制数的表示 ★ 机器数:在机器中使用的连同数符一起
代码化的数。
★ 真值(X):一个数本身(它所代表的实际值)。
★ 机器数有三种表示方式:原码、补码和反码。
★ 为讨论方便,先假设机器数为小数, 格式:符号位 小数点 数值
1/34
1
1. 原码表示法 ★ 最高位为符号位,0表示正数,1表示负数。 ★ 数值部分用绝对值形式表示。
真值X +0.1011
[X]原 0.1011
-0.1011
+0 0
-0
1.1011 0.0000 1.0000
2/34
2
2. 反码表示法
★ 最高位为符号位,0表示正数,1表示负数; ★ 若真值为正数:数值部分与原码相同;
若真值为负数:数值部分为原码各位取反。
真值X +0.1011
[X]反 0.1011
-1010 11010 11010 10101 10110
7/34
7
二、补码加减法运算 1. 溢出判断的三种方法
溢出:运算结果超出机器数所能表示的范围。
★ 两个异号数相加或两个同号数相减,不会溢出。 ★ 两个同号数相加或两个异号数相减,有可能溢出。
8/34
8
① 11+7=18 01011
+ 00111 10010
-0.1011
1.0100
+0 0
-0
0.0000 1.1111
3/34
3
3. 补码表示法
★ 最高位为符号位,0表示正数,1表示负数。
★ 若真值为正数:数值部分与原码相同; 若真值为负数:数值部分为原码各位取反, 并且末位再+1。
真值X +0.1011
[X]补 0.1011
-0.1011
1.0101
12/34
12
★ “变形补码”(双符号位是模4补码) ~采用多符号位的补码。
★ 运算结果的双符号位可能是: 00:结果为正,无溢出
01:正溢(大于机器所能表示的最大正数)
10:负溢(小于机器所能表示的最小负数)
11:结果为负,无溢出
13/34
13
2. 补码运算基础
★ 参与运算的数是补码,其结果仍是补码。 符号位与数值位一样参与运算。
正溢(上溢)
② -11-7=-18 10101
+ 11001 1 01110
③ 9+3=12 01001
+ 00011 01100
负溢(下溢)
无溢出
★ 设:fA:操作数A的符号位 fB:操作数B的符号位 fS:结果S的符号位 Cf: fA、fB参与运算所产生的进位
9/34
9
★ 方法一
溢出条件=f A fB fS f A fB fS
● 正+正 负
● 负+负 正
10/34
10
★ 方法二
溢出条件= C f C
● C与Cf不相同,则溢出。
Biblioteka Baidu11/34
11
★ 方法三(常用)
溢出条件=fS1 fS2 fS1 fS2 fS1 fS2
● 采用双符号位fS1fS2。正数为00,负数为11。 ● 当结果的两个符号位fS1和fS2不相同时,为溢出。
5/34
5
3. 不同码制间的相互转换
[X]原 [X]补 0.10100 0.10100
[X]原 [X]反 0.10100 0.10100
1.10111 1.01001
1.10111 1.01000
1.0101 1.1011
1.0101 1.1010
0.1110 0.1110
0.1110 0.1110