计算机组成与结构(全)第3章运算方法和运算部
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Xn -2= -1+
i 1
Xi•2-i
X= - X0 + 0. X1 X2 … Xn
2021/6/26
整理课件
40
补码的右移
[X]补 =X0.X1 X2 … Xn X= - X0 + 0. X1 X2 … Xn
1
2 X = (- X0 + 0. X1 X2 … Xn )/2
能表示的最小负整数为_(9)_。
C (8)A.2047
B.2048
C.4095
D.4096
A (9)A.-2047
B.-2048
C.-4095
D.-4096
2021/6/26
整理课件
29
3.3 二进制乘法运算
要求: 掌握原码一位乘法 理解补码一位乘法 了解原码二位乘法
3.3.1 定点数一位乘法 3.3.2 定点数二位乘法
2021/6/26
整理课件
36
思考题
用原码一位乘计算X = --0.1101,Y = --0.1011
2021/6/26
整理课件
37
+X
右移 +X
右移 +0
右移 +X
右移
00 0000 00 1101 00 1101 00 0110 00 1101 01 0011 00 1001 00 0000 00 1001 00 0100 00 1101 01 0001 00 1000
数据精度:一个数的有效位数。从第一个不 为0 的数开始算起。
例:C++中 short int 类型变量占4个字节
[-32768,32767]
X=0.0001100,有效位数为
2021/6/26
4 位 整理课件
28
2004 下半年程序员试题
假设用12个二进制表示数据。它能表示的
最大无符号整数为_(8)_;若采用原码,它
2021/6/26
整理课件
39
2、定点补码一位乘法
补码与真值的转换关系
[X]补 = X0. X1 X2 … Xn
当X≥ 0时, [X]补 =0. Xn 1 X2 … Xn
= i 1 Xi•2-i
当X<0时, [X]补 =1. X1 X2 … Xn =2n+X
X= [X]补 -2=1. X1 X2 …
2021/6/26
整理课件
24
3.2.3 定点数和浮点数
机器中的数据有两种表示方式:定点数和浮点数。 1、定点数 定义:小数点位置固定的数。
{ 定点数 定点小数—小数点固定在数值部分的左边 定点整数—小数点固定在数值部分的右边
2021/6/26
整理课件
25
2、浮点数
定义:小数点位置不固定的数据。
(1)一般机器不能完成多个数据相加,只能 同时进行两个数相加,因此得到一个相加数后与 上次部分积相加。
(2)如果相加数不移位,则部分积右移一位。
(3)乘积的高位放在部分积寄存器中,低位
放在乘数寄存器中,两个寄存器同时移位。由乘
数寄存器的低位来控制相加数。 为1时加被乘数
2021/6/26
为0时,加0
2021/6/26
整理课件
19
2004 上半年程序员试题
若码值FFH是一个整数的原码表示,则该
整数的真值为__(45)_C_:若码值FFH是一
个整数的补码表示,则该整数的真值为
__(46)__。D
(45)A.127
B.0
C.-127
D.-1
(46)A.127
B.0
C.-127
D.-1
2021/6/26
用定点补码表示纯小数,采用8位字长,编
码10000000表示的十进制数是_(7)_。
B (7)A.0
B.-1
C.+1
D.128
2021/6/26
整理课件
22
3.2.2 加减运算的溢出判断
溢出:运算结果超出机器数所能表示的范 围时,称为溢出。(上溢、下溢)
条件:两个同符号的数相加或两个异号的 数相减。
整理课件
14
3、反码表示法
反码的定义:
正数的反码 等于真值; 负数的反码 等于真值各 位取反
{X
[X]反 =
0≤X<1
2 -2-n + X Mod (2 - 2-n ) -1<X≤0
n为小数点后有效位数
注意:零的反码有两种表示形式:
[+0]反= 00000 [-0]反 = 11111
2021/6/26
X0 + Y0 = 0
2021/6/26
乘数 1011
被乘数: 1101
1 1 0 1 1 丢失 个位运算
1 1 1 0 1 丢失 十位运算
1 1 1 1 0 丢失 百位运算
1 1 1 1 1 丢失
千位运算
乘积低位
[X*Y ]原=0.10001111
整理课件
34
2021/6/26
整理课件
35
实现原码一位乘法的逻辑电路框图
判断方法:
(1)两个同符号的数相加,得到的和的符 号与相加数的符号不一致。
(2)任意两数相加,如果数值最高位的进 位等于符号位的进位,则无溢出。
2021/6/26
整理课件
23
(3)采用双符号位。 正数的符号位为00,负数的符号位为11。符 号位参加运算。如果两个符号位不相同,则溢 出。
一般在运算时用双符号位,在存储时只用一 个符号位。
2021/6/26
整理课件
9
2、 数字串在计算机内的表示与存储
(1)字符形式 一个字节放一个十进制数或符号位的 ASCII编码值。
(2)压缩的十进制数形式 一个字节放两个十进制数,符号位占半个 字节。
2021/6/26
整理课件
10
3.2 带符号数的二进制数据在机器中的表示 及加减法运算
机器数:计算机中带符号的二进制数称为机 器数。
还可分为: 有权码:每一位上的1有唯一确定的值 无权码:无法确定每一位上的1代表的值
2021/6/26
整理课件
7
有权码 8421
无权码 余3码 格雷码
0 0000 0011
0000
1 0001 0100
0001
2 0010 0101
0011
3 0011 0110
0010
4 0100 0111
0110
整理课件
1
3.1 数据的表示方法和转换
本节主要讲解机器中的数据如何表示
3.1.1 数值型数据的表示和转换 3.1.2 十进制数的编码与运算
2021/6/26
整理课件
2
3.1.1 数值型数据的表示和转换
1、数制
四种数制:
二进制、八进制、十进制、十六进制
表示方法:
二进制(X)2 、XB 十进制(X)10 、XD 组成:
1011 1101 1110 1111 1111
X + 2021/06/26 Y0 = 0
[整X理*课Y件 ]原=0.10001111
38
2004 上半年程序员试题
在进行原码乘法时,乘积的符号位是由被 乘数的符号位和乘数的符号位通过
C__(55)__运算来获得的。
(55)A.或
B.与
C.异或
D.分别取反后再进行或
(2)二进制 — 八进制 三位对应一位
(3)二进制 — 十六进制 四位对应一位
2021/6/26
整理课件
5
3、数据符号的表示
机器中符号需要数字化, 一般用0表示正号,用1表示负号。
有时候正号可以省略。
2021/6/26
整理课件
6
3.1.2 十进制数的编码与运算
1、十进制数位的编码与运算 机器中用4位二进制对每个十进制数位进行编码。 4位二进制有16种组合,选取其中的十个。 常用的方法有:8421码、余3码、格雷码
2021/6/26
整理课件
30
3.3.1 定点数一位乘法
1、定点原码一位乘法 两个原码数相乘,乘积的符号为两数的异或 值,数值为两数绝对值之积。
[X]原=X0X1X2…Xn [Y]原=Y0Y1Y2…Yn [X·Y]原 = [X]原 ·[Y]原
=(X0 + Y0)|(X1X2…Xn) ·( Y1Y2…Yn )
八进制(X)8、XO 十六进制(X)16、XH
二进制 —— 0,1 八进制 —— 0~7
十进制 —— 0~9 十六进制—— 0~9,A~F
2021/6/26
整理课件
3
进位记数法
,整 D数i?部ri分m位,小数部分k位
2021/6/26
整理课件
4
2、不同数制间的数据转换
(1)二进制 — 十进制 小数部分和整数部分方法不同
第三章 运算方法和运算部件
{基
础
3.1 数据的表示方法和转换
知 3.2 带符号数的二进制数据在机器中的表
识 示及加减法运算
掌握原码一位乘、除
重点 3.3 二进制乘法运算
3.4 二进制除法
加减乘除
重点 3.5 浮点数的运算方法
3.6 运算部件 3.7 数据校验码
奇偶校验码 海明校验码
2021/6/26
整理课件
33
部分积 00 0000 +X 00 1101 00 1101 右移1位 00 0110 +X 00 1101 01 0011 右移1位 00 1001 +0 00 0000 00 1001 右移1位 00 0100 +X 00 1101 01 0001 右移1位 00 1000
乘积高位
机器数有三种表示方式:原码、反码、补码
3.2.1 原码、反码、补码 3.2.2 加减运算的溢出判断 3.2.3 定点数和浮点数
2021/6/26
整理课件
11
3.2.1 原码、反码、补码(纯小数)
1、原码表示法 原码的定义:
{X
[X]原 =
0≤X<1
1 - X=1+|X| -1<X≤0
正数的原码 等于真值;
负数的原码 符号位为1, 数值部分等 于真值
注意:零的原码有两种表示形式 [+0]原=00000 [-0]原 =10000
2021/6/26
整理课件
12
2、补码表示法补码的定义:{X[X]补 =
0≤X<1
2 + X=2 - |X| Mod 2 -1≤X<0
正数的补码等于真值;
负数的补码等于真值各位取反,末位加1
移码公式:
[X]移= 2n + X 移码特点:
-2n≤ X< 2n
(1)0表示负数,1表示正数
把[X]补符号 位取反即可
得[X]移
(2)只执行加减运算
零的移码唯一 [X]移=10000
2021/6/26
整理课件
27
3、机器中数据的数值范围与精度
数值范围:机器能表示的一个数的最大值与 最小值之间的范围
5 0101 1000
1110
6 0110 1001
1010
7 0111 1010
1000
8 1000 1011
1100
9 1001 1100
0100
2021/6/26
整理课件
8
BCD码:四个二进制位的权从高到低分别是 8,4,2,1,数位内部满足二进制规则, 数位之间满足十进制规则。
例:BCD码 0001 0000 相当于十进制10, 不等于( 0001 0000 )2。
整理课件
15
反码的加法公式
[X+Y]反= [X]反 + [Y]反
说明:符号位参加运算; 当最高位有进位时要丢掉进位, 在末位加1。
2021/6/26
整理课件
16
4、数据的原码、补码和反码的相互转换
(1)反码表示形式转换成原码 方法:正数的原码和反码形式相同
负数的符号位保持不变, 数值部分各位取反 (2)补码表示形式转换成原码 方法:正数的原码和补码形式相同 负数的符号位保持不变, 数值部分各位取反,末位加1
[X]补 = 2 + X Mod 2
2021/6/26
整理课件
13
补码的加、减法公式
(1)同符号的两数相加或两个异号数相减 [X+Y]补= [X]补 + [Y]补
(2)同符号的两数相减或两个异号数相加 [X-Y]补= [X]补 + [-Y]补
说明:符号位参与运算; 最高位产生的进位自动丢弃
2021/6/26
2021/6/26
整理课件
31
人工计算X*Y,X = 0.1101,Y = 0.1011
0. 1 1 0 1
× 0. 1 0 1 1
1101 1101
X*Y=0.10001111
0000
1101
0. 1 0 0 0 1 1 1 1
2021/6/26
整理课件
32
相加数只有 两种情况: 0或被乘数
机器的原码一位乘法做了如下修改:
表示形式: N = M ·RE
0.5 ≤ |M| < 1 以补码表示时可以取-1
说明:
N为浮点数,M为尾数,常用规格化形式表示, E为阶码,R为基数或底。
常用的浮点数有两种:
(1)单精度(32位),阶码8位,尾数24位
(2)双精度(64位),阶码11位,尾数53位
2021/6/26
整理课件
26
浮点数的阶码通常用补码或移码表示。
2021/6/26
整理课件
17
5、整数的表示形式
P77
注意: 负数的补码公式后加 mod 2n
2021/6/26
整理课件
18
原码、补码和反码小结
纯小数:
正数的原码、补码和反码形式相同,等于真值
{负数
原码:符号位取1,数值部分等于真值; 补码:符号位取1,数值部分等于真值
各位取反,末位加1;
反码:符号位取1,数值部分各位取反
整理课件
20
2004 下半年程序员试题
某数值编码为FFH,若它所表示的真值为
-127,则它是用_(5)_表示的;若它所表
示的真值为-1,则它是用_(6)_表示的。
A (5)A.原码
B.反码
C.补码
D.移码
C (6)A.原码
B.反码
C.补码
D.移码
2021/6/26
整理课件
21
2004 下半年程序员试题