第三章 计算机的运算方法
计算机组成原理 [袁春风]chap3_1
![计算机组成原理 [袁春风]chap3_1](https://img.taocdn.com/s3/m/6a0eacceaa00b52acfc7cacf.png)
15
南京大学计算机系 多媒体技术研究所 袁春风
3.2.3 先行进位ALU
(1)为什么用先行进位方式 行波进位是串行逐级传递的 整个和的生成受到行波进位的影响 因此 现代计算机采用一种先行进位(Carry look ahead)方式 (2)如何产生先行进位 定义两个辅助函数 Gi=aibi…进位生成 Pi=ai⊕bi…进位传递 通常把实现上述逻辑的电路称为进位生成/传递部件 全加逻辑方程 Si=Pi⊕Ci Ci+1=Gi+PiCi (i=0,1,…n) 设n=4,则 C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0 C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0 由上式可知:各进位之间无等待 相互独立并同时产生 通常把实现上述逻辑的电路称为4位CLA部件 由此 根据Si=Pi⊕Ci 可并行求出各位和 通常把实现Si=Pi⊕Ci的电路称为求和部件 CLA加法器由“进位生成/传递部件” “CLA部件”和“求和部件”构成
高位进位逻辑表达式
9
南京大学计算机系 多媒体技术研究所 袁春风
全加和逻辑
10
南京大学计算机系 多媒体技术研究所 袁春风
全加和逻辑 续
11
南京大学计算机系 多媒体技术研究所 袁春风
全加器逻辑图
上述全加器和Sum的延迟为6ty,进位Cout的延迟为 (假定一个与/或门延迟为1ty 异或门的延迟则为
AL BL CL DL CS DS SS ES IP 16位
第三章 运算方法
![第三章 运算方法](https://img.taocdn.com/s3/m/d6f43003804d2b160a4ec03c.png)
第三章运算方法一名词解释(1)溢出——在运算过程中如出现数据超过这个数表示范围的现象,称溢出。
(2)运算器——运算器是一个用于信息加工的部件,又称执行部件。
它对数据进行算术运算和逻辑运算。
(3)并行加法器——全加器的位数与操作数的位数的加法器称并行加法器。
(4)进位链——进位信号的产生与传递的逻辑结构称为进位链。
(5)进位产生函数——当xi与yi都为1时,Ci=1,即有进位信号产生,所以将xiyi称为进位产生函数,以Gi表示。
(6)进位传递函数——当xi⊕yi=1、Ci-1=1时,则Ci=1。
这种情况可看作是当xi⊕yi=1时,第i-1位的进位信号Ci-1可以通过本位向高位传送。
因此把xi⊕yi称为进位传递函数,以Pi表示。
(7)桶形移位器——在选择电路的控制下可以实现左移、右移、直送操作的具有移位功能的电路。
一.选择题1.大部分计算机内的减法是用_____实现。
A.将被减数加到减数中B.从被减数中减去减数C.补码数的相加 D.补码数的相减2.原码加减法是_____。
A.操作数用原码表示,连符号位直接相加减B.操作数用原码表示,尾数直接相加减,符号位单独处理C.操作数用原码表示,根据两数符号决定实际操作,符号位单独处理D.操作数取绝对值,直接相加减,符号位单独处理3.补码加减法是指______。
A.操作数用补码表示,两尾数加减,符号位单独处理,减法用加法代替B.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加减相同C.操作数用补码表示,连符号位直接相加减,减某数用加负某数的补码代替,结果的符号在运算中形成D.操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4.在原码加减交替除法中,符号位单独处理,参加操作的数是_____。
A.原码 B.绝对值C.绝对值的补码 D.补码5.两补码相加,采用1位符号位,则当_____时,表示结果溢出。
A.最高位有进位 B.最高位进位和次高位进位异或结果为0C.最高位为1 D.最高位进位和次高位进位异或结果为16.在下列有关不恢复余数法何时需恢复余数的说法中,正确的是_____。
补码一位乘法
![补码一位乘法](https://img.taocdn.com/s3/m/f4ce6378844769eae009ed97.png)
计算机组成原理第三章运算方法与运算器3.4 补码一位乘法1补码一位乘法的基本方法设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n可证明:[X⋅Y]补= [X]补•( 0.Y1Y2Y3…Yn) –Y0• [X]补进一步展开合并后可得:n[x•y]补=[x] 补•∑(y i+1-y i)2-i (符号位参加运算)i=01补码一位乘法的基本方法[x•y] 补=[x] 补• (y i+1-y i)2-i (符号位参加运算)补码一位乘法的运算规则如下:(1)如果y n+1=y n,部分积加0,部分积算术右移1位;(2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位;(3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位.重复进行n+1步,但最后一步不移位。
包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.1补码一位乘法的基本方法几个特殊问题的处理[x •y] 补=[x] 补• (y i+1-y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n(1)i=n 时,y n+1=?(2)y n+1是哪个寄存器?(3)算术右移的对象有哪些?y n+1=0在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移2补码一位乘法的举例例1 已知X= +1101 Y=+1011 用补码一位乘法求X⨯Y解:[X]补=01101 [Y]补=01011 [–X]补=10011部分积乘数说明000000 010110Y n+1< Y n部分积+[–X]补+ 110011110011→111001101011结果右移一位,Y n+1= Y n部分积+0+ 000000111001→111100 110101结果右移一位, Y n+1> Y n部分积+[X]补+ 0011010010012补码一位乘法的举例部分积乘数说明→000100 111010将结果右移一位, Y n+1< Y n部分积+[–X]补+ 110011110111→111011 111101将结果右移一位, Y n+1> Y n部分积+[X]补+ 001101001000∴[X⋅Y]补=010001111∴X⋅Y= 010001111。
计算机组成原理第三章运算方法与运算器(含答案)
![计算机组成原理第三章运算方法与运算器(含答案)](https://img.taocdn.com/s3/m/d39b0d9849649b6648d74763.png)
第三章运算方法与运算器3.1定点数运算及溢出检测随堂测验1、定点运算器可直接进行的运算是() (单选)A、十进制数加法运算B、定点数运算C、浮点数运算D、定点数和浮点数运算2、设计计算机字长为8位,两个十进制数X = -97 ,Y = 63, [x]补- [y]补的结果为()(单选)A、01100000B、11011110C、负溢出D、正溢出3、下列关于定点运算溢出的描述中,正确的是( ) (多选)A、补码数据表时,同号数相加可能发生溢出B、补码数据表时,异号数相减可能发生溢出C、参加运算的两个数,当作为有符号数和无符号数进行加法运算时,不可能两者都溢出D、溢出检测既可用硬件实现,也可用软件实现4、设X为被加(减)数,Y为加(减)数,S为运算结果,均采用补码数据表示,下列关于溢出电路设计的描述中,正确的是()(多选)A、采用单符号位时,直接用X、Y和S的符号位就可设计溢出监测电路B、采用双符号位时,可直接用S的双符号位设计溢出检测电路C、采用单符号位时,可直接用X、Y最高有效数据位运算后的进位位和S的进位设计溢出监测电路D、对无符号数的加/减运算,可利用运算器的进位信号设计溢出检测电路3.2 定点数补码加、减运算器设计随堂测验1、如图所示为基于FA的运算器:为了利用一位全加器FA并配合使用控制信号P,当P= 0/1时实现A、B两个数的加法/减法运算,图中空白方框处电路的逻辑功能应该是()(单选)A、与门B、或门C、异或门D、非门2、如图所示为带溢出检测功能的运算器该电路完成的溢出检测功能是()(多选)A、带符号数的加法溢出检测B、带符号数的加法溢出检测C、无符号数的加法溢出检测D、无符号数减法的溢出检测3、下列关于并行进位的描述中,正确的是()(多选)A、并行进位可以提高运算速度B、并行进位模式下,各进位位采用不同电路各自产生,相互间不再有依存关系C、采用先行进位部件和ALU模块可构建长度可变的并行进位运算器D、并行进位只对加法有效,而对减法无效4、四位并行ALU中有两个特殊的输出端,分别是:G =A3B3+(A3+B3)(A2B2+(A2+B2)(A1B 1+ (A1+B1) A 0B0)) 为进位产生函数,P=(B3+A3) (B2+A2)( A1+B1 ) (A0+B0)为进位传递函数下列关于P、G的描述中,正确的是()(多选)A、设计P和G的目的是为了构建位数更长的并行ALUB、P和G对算术运算和逻辑运算都有意义C、P的作用是将本片ALU的最低进位输入位传递到本片ALU的最高进位输出端D、G的作用是根据参与运算的两个数据产生本片ALU的最高进位输出3.3 原码一位乘法随堂测验1、设计算机字长为8位,X = - 19,对该分别执行算术左移和逻辑左移一位后的结果分别为()(单选)A、11011010 ,11011010B、11110010 ,11110010C、11011000 ,11011000D、11110000 ,111100002、设计算机字长为8位,X = - 19,对该分别执行算术右移和逻辑右移一位后的结果分别为()(单选)A、11111001,11111001B、11111001,01111001C、11110110,01110110D、11110110,111101103、关于原码一位乘法的下列描述中,正确的是()(多选)A、数据取绝对值参加运算B、符号位单独处理C、乘法执行过程中的所有移位都是算术移位D、最后的结果由部分积寄存器和乘数寄存器共同保存4、计算机字长为n位, 下列关于原码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次算术右移和n 次加法运算B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 还是加x的绝对值,取决于此时的YnD、乘法过程中右移部分积是为了使部分积与下次的加数按位对齐3.4 补码一位乘法随堂测验1、16位补码0X 8FA0扩展为32位的结果是() (单选)A、0X 0000 8FA0B、0X FFFF 8FA0C、0X FFFF FFA0D、0X8000 8FA02、计算机字长为n位, 下列关于补码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次加法和n-1 部分积右移B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 、[x]补还是[-x]补,取决于此时的Yn+1 与Yn的差D、乘法过程中右移部分积的目的是为了使部分积与下次的加数对齐3、关于补码码一位乘法的下列描述中,正确的是()(多选)A、符号位和数据位一起参加运算B、运算开始前,需要在乘数寄存器Y后面补上Yn+1且其初值为0C、乘法执行过程中的对部分积的移位是算术右移D、最后的结果由部分积寄存器和乘数寄存器共同保存3.5 乘法运算器设计随堂测验1、下图为原码一位乘法器原理图正确的是()(单选)A、A: 部分积寄存器B:乘数寄存器C: |X| D: YnB、A: 部分积寄存器B:乘数寄存器C: |X| D: Yn+1C、A: 被乘数寄存器B:乘数寄存器C: |X| D: YnD、A: 被乘数寄存器B:乘数寄存器C: |X| D: Yn+12、下图为补码一位乘法原理图正确的是() (单选)。
运算方法和运算部件
![运算方法和运算部件](https://img.taocdn.com/s3/m/fb05af6525c52cc58bd6be81.png)
• 在计算机内部实现BCD码算术运算,要对运算结果 进行修正,对加法运算的修正规则是: • 如果两个一位BCD码相加之和小于或等于(1001)2, 即(9)10,不需要修正;如相加之和大于或等于 (10)10,要进行加6修正,并向高位进位,进位可以 在首次相加(例3.10③)或修正时(例3.10②)产生。 • 例3.10 • ① 1+8=9 0001 +1000 1001 • 不需要修正
3 4 5 6 7 8 9
0011 0100 0101 0110 0111 1000 1001
0011 0100 1011 1100 1101 1110 1111
0101 0111 1000 1000 0111 1011 1100 1110 1111
• (2) 无权码 • 表示一个十进制数位的二进制码的每一位没有确定 的权。用得较多的是余3码(Excess-3 Code)和格雷 码(Gray Code),格雷码又称“循环码”。 • 余3码是在8421码基础上,把每个编码都加上0011 而形成的(见表3.3),其运算规则是: • 当两个余3码相加不产生进位时,应从结果中减去 0011;产生进位时,应将进位信号送入高位,本位 加0011。 • 例3.11 (28)10+(55)10=(83)10
• 例3.7 将(105)10转换成二进制。 2 105 余数 结果 2 52 1 最低位 2 26 0 2 13 0 … 26 1 23 0 21 1 0 1 最高位 • 得出:(105)10=(1101001)2
• 对小数部分,一般用乘2取整数法,其规则如下: • 将十进制数乘以2,所得乘积的整数部分即为对应 二进制小数最高位的值,然后对所余的小数部分乘 以2,所得乘积的整数部分为次高位的值,如此进 行下去,直到乘积的小数部分为0,或结果已满足 所需精度要求为止。 • 例3.8 将(0.312 5)10和(0.312 8)10转换成二进制数(要 求4位有效位)。
计算机的运算方法
![计算机的运算方法](https://img.taocdn.com/s3/m/43a5e674f46527d3240ce04e.png)
即得[ y 即得 y]补
[y]补连同符号位在内, 每位取反, -n 连同符号位在内, 每位取反, 末位加 1 … 即得[ 即得
y = (0. y1 y2 yn + 2 ) y]补 … yn + 2-n y = 0. y1 y2
[ y]补 = 0. y1 y2 … yn + 2-n
例:求补运算
已知:[B]补=0,0101101 求:[-B]补 解:[-B]补=1,1010011
上溢 阶码 > 最大阶 码 下溢 阶码 < 最小阶码 按 机器零 处理 上溢 上溢 负数区
最小负数 ( 2m–1)×( 1 – 2–n) –2
下溢
正数区
最大正数 2( 2
m–1)
0
最小正数
–( 2m–1)×2–n 2
–2
15
×( 1 – 2 )
-10
×( 1 – 2–n) 215 ×( 1 – 2 10)
解: ∵ 215 = 32768 ∴ 15 位二进制数可反映 ±3 万之间的十进制数 215 × 0.××× … … ×× m = 4、5、6 … 、 、
满足 最大精度 可取 m = 4,n = 18 ,
2. 浮点数的表示范围,阶码的数值部分为 位,尾数的数值部分为 位 浮点数的表示范围,阶码的数值部分为m位 尾数的数值部分为n位
数的定点表示和浮点表示
小数点按约定方式标出 一、定点表示
S f S 1S 2 … S n
数 符 小数点 数
Sf S1S2 … Sn
数 符 数 小数点
小数
数
二、浮点表示
N = S×rj
S 尾数 j 阶码 浮点数的一般形式 r 基数(基值) 基数(基值)
计算机的运算方法除法运算
![计算机的运算方法除法运算](https://img.taocdn.com/s3/m/faf62dfcad02de80d5d8406c.png)
6.3 定点运算
•四、除法运算 –1. 笔算除法是怎么做的 –2. 如何用计算机硬件来模拟笔算 除法的过程
•恢复余数法 •加减交替法
四、除法运算
1. 分析笔算除法 x = – 0.1011 y = 0.1101 求 x÷y
0
X
n
计数器 C GD S V
例6.25 结果
① x0 y0 = 1 1 = 0
②
x* y*
=
0.1101
∴
[
x y
]原
=
0.1101
特点 上商 n+1 次 第一次上商判溢出 移 n 次,加 n+1 次 用移位的次数判断除法是否结束
(3) 原码加减交替除法硬件配置
0
A
n
0
Q
n
n + 1 位加法器
左移 加
减
移位和加控制逻辑
控制门
3. 原码除法
以小数为例
[ x ]原 = x0. x1x2 … xn
[ y ]原 = y0. y1y2 … yn
[
x y
]原
=
(x0
y0).
x* y*
式中 x* = 0. x1Fra bibliotek2 … xn 为 x 的绝对值 y* = 0. y1y2 … yn 为 y 的绝对值
商的符号位单独处理 x0 y0
数值部分为绝对值相除
计算机实现除法时,要把除数右移改为被除数/余数左移。
要求计算机把求得的商直接写进商寄存器的每个对应位也是 不可取的,通常是把商上到商寄存器的最低位,并把部分商左移 一位。
计算机原理第三章运算方法和运算器综合练习
![计算机原理第三章运算方法和运算器综合练习](https://img.taocdn.com/s3/m/57b6933b492fb4daa58da0116c175f0e7dd11955.png)
计算机原理第3章运算方法和运算器综合练习一、选择题知识点:定点补码的加法,减法,不带符号数的运算,溢出 P261、[X]补+[Y]补=[X+Y]补(mod 2n)2、[X-Y]补=[X+(-Y)]补= [X]补+[-Y]补(mod 2n)3、[-Y]补=[[Y]补]变补(注:连同符号位一起变反加1的过程叫变补或求补。
)4、判断溢出条件: C S+1和C S相异时溢出当C S+1C S=00或 C S+1C S=11时不产生溢出。
当C S+1C S=01或C S+1C S=10时则产生溢出。
1、计算机中实现减法运算使用的方法是()A.从被减数中减去减数 B.从减数中减去被减数再求反C.转换为补码的加法运算 D.依减数的形式再选择一种适当的方法2、定点数作补码加减运算时,其符号位是( )A.与数位分开进行运算B.与数位一起参与运算C.符号位单独作加减运算D.两数符号位作异或运算3、补码加减法运算是()A .操作数用补码表示,两数的尾数相加减,符号位单独处理,减法用加法代替B .操作数用补码表示,符号位与尾数一起参加运算,结果的符号与加减所得相同C .操作数用补码表示,连同符号位直接相加减,减某数用加负某数的补码代表,结果的符号在运算中形成D .操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4、执行二进制算术运算11001001+00100111,其运算结果是()。
A) 11101111 B) 11110000 C) 00000001 D) 101000105、已知X的补码为11101011,Y的补码为01001010,则X+Y的补码为()。
A、10100001B、11011111C、00110101D、溢出6、已知X的补码为11101011,Y的补码为01001010,则X-Y的补码为()。
A、10100001B、11011111C、10100000D、溢出7、下面关于溢出的描述正确的是()A 溢出就是进位B 溢出是指运算结果的最高位向更高位进位或借位C 溢出与补码运算中的模丢失是一个概念D 溢出主要用于判断带符号的运算结果是否超过数的表示范围8、定点运算器运算时产生溢出的原因是()。
计算机组成原理与汇编语言3
![计算机组成原理与汇编语言3](https://img.taocdn.com/s3/m/7b7fc6d4b14e852458fb57ab.png)
补码加减运算
注意:求一个数的补码: 正数时,补码和原码相同; 负数时, 对原码除符号位外求反加1。
例1: 1: y = -0.0110 [y]补 = 1.1010 例2: y = 0.0111 [y]补 = 0.0111 [-y]补 = 1.1001 [-y]补 = 0.0110
第三章 数值运算及运算器
例(3):按位清
设:A=10010010,将A最高位清“0” 设:B=01111111 10010010 A ∧ 01111111 B ——————— 00010010 A
第三章 数值运算及运算器
例(4):按位测试
设:A=10010010,测A最高位是否为“1”; 设: B=10000000 10010010 ∧ 10000000 ——————— 10000000 结果不全为“0”,表明被测码的被测位为“1”。 结果为全“0”,表明被测码的被测位为“0”。
第三章 数值运算及运算器
(一)对进位公式的分析 设相加的两个n位操作数为: A=An-1An-2…Ai..A0 B=Bn-1Bn-2…Bi..B0
Ci+1 = AiBi + (Ai⊕Bi) Ci —— 进位逻辑表达式 设:Gi = AiBi —— 进位产生函数(Carry Generate Function)
二、溢出检测
1. 采用一个符号位判断
规则: • 当两个同号数相加,若所得结果符号与两数符号不同, 则表明溢出。 • 设An、Bn分别表示两个操作数的符号; Sn表示结果 的符号, 则有: 溢出=AnBnSn + AnBnSn
63+66=129 0,0111111 + 0,1000010 1,0000001
第三章 运算方法及运算部件习题
![第三章 运算方法及运算部件习题](https://img.taocdn.com/s3/m/e9eee7767375a417876f8f36.png)
第三章运算方法及运算部件一、选择题:将正确的答案序号填在横线上1.下列数中最小的数是______。
A.(1010011.10101)2 B.(123.55)8C.(53.B0)16 D.(83.75)102.某数在计算机中用8421BCD码表示为0011 1001 1000,其真值为______。
A.398 B.398H C.1630Q D.1110011000B3.ASCII码是对(1)_进行编码的一种方案,它是(2)_的缩写。
(1)A.字符 B.汉字 C.图形符号 D.声音(2)A.余3码 B.十进制数的二进制编码C.格雷码 D.美国标准信息交换代码4.一个1G的硬盘,最多可存放______个ASCII字符。
A. 220B.224 C. 210 D. 2305.存储32个汉字的机内码需要______。
A.16字节 B.32字节 C.64字节 D.128字节6.机器数10000001B,它所代表的数______。
A.一定是-1 B.一定是-127C.一定是-126 D. 以上3个数都有可能7. 假定一个十进制数为-66,按补码形式存放在一个8位寄存器中,该寄存器的内容用十六进制表示为______。
A.C2H B.BEH C.BDH D.42H8.如果X是负数,由[X]补求[X]原是将______。
A.符号位变反,其他各位不变 B.所有位求反,末位加1C.除符号位外,其他位求反后末位加1D.除符号位外,其他位求反9.下列数中,最大的是______。
A.[X]补=1001101 B.[X]原=1001101C.[X]反=1001101 D.[X]移=100110110. 计算机内的溢出是指其运算的结果______。
A.为无穷大B.超出了计算机内存单元所能存储的数值范围C.超出了该指令所指定的结果单元所能存储的数值范围11.计算机中表示地址时使用______。
A.无符号数 B.原码 C.反码 D.补码12. 计算机系统中采用补码运算的目的是为了______。
计算机组成原理第3章 运算器和运算方法
![计算机组成原理第3章 运算器和运算方法](https://img.taocdn.com/s3/m/89daa2621711cc7931b716e2.png)
第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
计算机的运算方法
![计算机的运算方法](https://img.taocdn.com/s3/m/f5535038bc64783e0912a21614791711cd797953.png)
计算机的运算⽅法计算机的运算⽅法⽆符号数计算机中的数存放在寄存器中,通常将寄存器的位数称为机器字长, ⼤家说的⽆符号数其实就是不区分正负号的数,换句话说,就是没负数,全是正数,⼤家知道,计算机中的数是以0-1存储的, 假如我们的寄存器16位, ⽆符号数表⽰的范围就是0~65535 (2^64=65536), 有符号就是分正负数,总数65536就被分成两半,⼀半正数,⼀般负数,范围就是 -32768~32767有符号数有符号数,就是正负数同时存在, ⼈们固然能区分开整正负数,计算机怎么区分呢?前⾯说了,计算机只认识01这样的数,于是⼈们规定 0表⽰正数, 1表⽰负数, 于是这样符号就被数字化了, 并且规定将其放在真实值前⾯, 于是有符号数就诞⽣了如上图,按照计算机存数数据的特性将符号数字化, 数字化后的编码⽅式得到的结果称为机器数, 将带有+-符号的数字称为真值既然现在将有符号数数字化后,新的问题来了,当这些机器数之间需要进⾏运算时, 符号位怎么办? 符号位能否参加机器数之间的运算呢? 如果说,需要参加运算⼜需要哪些处理才能消除符号位对计算结果的影响呢? **这⼀连串问题就引出了符号位和数值位所构成的编码: 原码 , 补码 ,反码 , 移码 **其实在学习的过程中该⼀直问⾃⼰,⾃⼰在⼲什么就⽐如现在,我在前⾯⼤概说了说计算机是如何表⽰数字的,于是认识了机器码,机器码之间需要进⾏运算于为了设计出使机器码运算的⽅式,⼈们对机器码进⾏不同的变形编码,得到了,原码,补码,反码,移码等,下⾯看⼀下这⼏种编码的由来,以及他们对实现机器码的可计算的贡献原码原码是机器码最简单的⼀种变形,同样的它的符号位0表⽰正数,1表⽰负数。
数值位就是真值的绝对值⼈们为了书写⽅便已经区分⼩数和整数,在符号位和数值位之间使⽤逗号分隔整数的原码举个例⼦:x= +1110, 那么它的原码就是 0,1110x= -1110, 原码=1,1110⼩数的原码举个例⼦x= 0.1101 , 那么它的原码就是 0.1101x= -0.1101, 原码=1 - (-0.1101) = 1.1101看上⾯的原码计算⽅式,显然机器码很容易就转成原码,但是想想如果⽤原码进⾏数值运算的话就会带来很多⿇烦,我们得先判断两个机器数绝对值的⼤⼩然后⽤⼤的减去⼩的,最终的符号再按照绝对值⼤的算, **⽽且我们需要设计两套运算流程,⼀套给加法⽤,⼀套给减法⽤,但是前辈们很智慧,因为⼈们找到了⼀种⽅式,找到了⼀个正数去替换原来减数位置的负数,类似像下⾯这样,实现了在计算机中仅仅设计⼀套加法器就实现加减法的运算 **5-3=25+(-3)=2上述⽅法的实现就依赖于下⾯的补码补码补码的概念和补数的概念很像,⽐如现在时钟六点了,我们想让它指向三点,于是我们可以往回转3(6-3=3)圈时针能回退到3点,也可以往前转9圈(6+9=15),可以前进到三点,对时钟来说往顺时针还是逆时针的过程不⼀样,但是对我们来说结果是⼀样的,都是三点了这个过程就类似于,找到⼀个正数,让这个正数代替负数去参加运算,使⽤加法运算器也能得到正确的结果时钟旋转⼀圈12⼩时,在这12⼩时中是不被显⽰且⾃动丢失的,也就是说 15-3=3 点,于是我们可以说,其实对时钟来说, -3 +9 的作⽤其实是⼀致的,结果都是三点,在数学上我们将12称为模,写成mod 12 ,我们管9 称为是 -3以12为模的补数于是我们得知,只要我们确定了模,我们就能求出这个数对这个模的地位相同的补数,或者说当我们想将已知的负数转换成可以替换他的正数的话,借助模就可以完成如何利⽤模求补数呢?正数的补数是它本⾝负数可以⽤它的正补数等价替换负数的补数= 模+负数本⾝如何进⾏求模⽰例:-3 全等于 +7 (mod10)+7 全等于 +7 (mod10)-3 全等于 +97 (mod100)-1011 全等于 +0101 (mod2^4)2^4=1 0 0 0 0- 1 0 1 1---------------0 1 0 1+0101 全等于 +0101 (mod2^4)⼩数的mod = 2+0.1001 全等于 +0.1001 (mod2)-0.1001 全等于 +1.0111 (mod2)1 0.0 0 0 0- 0.1 0 0 1--------------1.0 1 1 1求补码的公式求负数补数的⽰例其实⼤家可以看⼀下,对负数的公式来说,公式中的n就是负数的位数, -1101 ⼀共四位, n=4, 但是取的是n+1位, 换句话说是⽤⼀个⽐原负数多两位的数加上这个负数, 多出来⼀个符号位, 最后的结果中别忘了⽤逗号分隔符号位和数值位, 当然这是为了⽅便我们⾃⼰看,让⼈们⼀眼看去知道最开始的1是个符号位,后⾯的数才是想求的补数结果⼩数求补码的公式举个例⼦: 求 -0.0110 的补码此外, +0 -0的补码都是 0从上⾯的讨论我们知道,之所以想引⼊补码是为了消除减法运算,即将⼀个负数转换成它的正数补码,但是根据补码的定义,⼤家可以看到上⾯的两个例⼦,在产⽣补码的过程中⼜出现了减法运算,怎么办呢?于是我们这样求补码: 先求原码, 然后变换这个原码得到补码, 怎么变换呢? 就是将除了符号位的原码其它为取反之后再加1举个例⼦: 上⾯的就⽤ -1101 来说, 如下:于是看到这⾥我们彻底知道了,只为计算机设计⼀个加法器是完全ok的,下⽂会介绍如何运算反码通过上⾯的运算我们知道下⾯的运算规则原码(符号位,数值位) => 除符号位外其他位取反 = 反码反码+1 = 补码补码-1 = 反码由此可知,其实这个反码就是原码和补码双⽅转换时的中间状态⼩结原码,反码,补码的最⾼位都是符号位, 符号位和数值位之间使⽤.或者逗号分隔(⼩数⽤点, 整数⽤逗号)真值为整数时, 原码,反码,补码的表⽰形式是相同的虽然真值为负数时,原码.反码补码各不相同,但是最⾼位的符号为都是1, 并且原码求反+1=补码 , 原码每位求反=反码移码真值转换成补码后,由于符号位和数值位是⼀起进⾏编码的,因此⼈们很难分清补码之间的⼤⼩就像下⾯这样⼗进制的21 对应⼆进制为+10101 补码为 0,10101⼗进制的-21 对应⼆进制为-10101 补码为 1,01011⼗进制的31 对应⼆进制为 +11111 补码为 0,11111⼗进制的-31 对应⼆进制为-11111 补码为 1,00001直观上看他们的⼤⼩是 101011>010101 100001>011111 ⽽实际上恰恰相反于是我们这样, 在每⼀个真值的基础上加上⼀个2^n , 情况就发⽣了变化+10101 加上2^5 得 110101-10101 加上2^5 得 001011+11111 加上2^5 得 111111-11111 加上2^5 得 000001这样的话不需要借助补码,六位代码本⾝就能看到出真值的⼤⼩更进⼀步,通过观察可以发现,其实⼀个数的补码和移码之间就差⼀个符号位,换句话说,如果我们将补码的符号位从0换为1,或者从1换成0得到的就是它的移码, 在这基础上⽐较⼤⼩得到的结果是准确的此外正负零的移码的⼀样的移位运算计算机中的机器数的字长往往是固定的,当机器数左移n位或者是⼜移n位时,势必会倒是另外⼀边出现空位,那么在出现空位的位置到底是补充1还是填充0呢? 这取决于机器数是有符号还是⽆符号,其中有符号的机器数采取的位移称为算数位移,⽆符号的唯⼀称为逻辑位移算数位移的移位规则真值码制补填代码正数原码,补码,反码0负数原码0负数原码左移添0负数补码右移添1负数反码1⽆论是正数还是负数,移位后的符号位都是不变的举⼏个例⼦机器数⼗进制移位前 : 0,0011010 +26左移1位: 0,0110100 +52右移1位: 0,0001101 +13左移⼀位,除符号位外原来的最⾼位被移⾛了,右边空出的1位⽤0补全,但是⾼位丢失了其实得到的就是错误的结果,但是这个错误的结果恰好是原值的2倍,⽽且唯⼀运算速度还快,因此很多框架的底层都青睐使⽤这个位移运算的特性每次右移时,最右边的数就会丢失,精度收到影响左移⼀位相当于乘以2,右移1位相当于除以2逻辑位移的移位规则逻辑左移,⾼位丢失,低位填0, 逻辑右移,低位丢失,⾼位补0加法与减法运算回到⼀开始话题,计算机的运算⽅法,前⾯通过补码的介绍我们知道了只设计⼀套加法器其实是可⾏的,下⾯具体看⼀下是如何进⾏运算的即 A-B = A + (-B)补码的加法公式整数: [A]补 + [B]补 = [A+B]补 (mod 2^n+1)⼩数: [A]补 + [B]补 = [A+B]补 (mod 2)对于减法来说整数: [A-B]补 = [A]+[-B]补 (mod 2^n+1)⼩数: [A-B]补 = [A]+[-B]补 (mod 2)最后看⼀个例⼦: 看看计算机如何将减法转换成加法并携带符号位运⾏得出正确结果假设机器8位(含⼀位符号位),若A=+15 B=+24, 让我们求 [A-B]补 ,并还原真值A=+15 = +0001111 (算上+号⼀共⼋位)b=+24 = +0011000 (算上+号⼀共⼋位)A和B都是整数,所以他们的补码就是原码本⾝:[A]补 = 0,0001111[B]补 = 0,0011000[-B]原码 = 1,0011000[-B]反码 = 1,1100111 (除符号位取反得到反码:)[-B]补 = 1,1101000 (由反码+1得到)[A-B]补 = [A]补 + [-B]补= 0,0001111 + 1,1101000= 1,1110111那么 A-B = 啥呢? 反着换回去1,11101111,1110110 (末位减1再取反)1,0001001 = -0001001 = -9。
计算机组成与结构习题及答案
![计算机组成与结构习题及答案](https://img.taocdn.com/s3/m/285a1a53fd0a79563d1e7287.png)
第一章:概述一、选择题1.完好的计算机系统应包括__ ___。
A. 运算器、存储器、控制器B. 外部设备和主机C. 主机和实用程序D. 配套的硬件设备和软件系统2.至今为止,计算机中的所有信息仍以二进制方式表示的理由是_ __。
A. 节约元件B. 运算速度快C. 物理器件的性能决定D. 信息处理方便3.从系统构造看,至今绝大多数计算机仍属于__ __型计算机。
A. 并行B. 冯.诺依曼C. 智能D. 实时处理4.计算机外围设备是指__ ___。
A. 输入/输出设备B. 外存储器C. 远程通讯设备D. 除CPU和内存以外的其他设备5.在微型机系统中,外围设备通过___ ___与主板的系统总线相连接。
A. 适配器B. 译码器C. 计数器D. 存放器6.冯·诺依曼机工作的根本方式的特点是__ ____。
A. 多指令流单数据流B. 按地址访问并顺序执行指令C. 堆栈操作D. 存贮器按内容选择地址7.微型计算机的开展一般是以_____技术为标志。
A. 操作系统B. 微处理器C. 磁盘D. 软件8.以下选项中,___ ___不属于硬件。
A. CPUB. ASCIIC. 内存D. 电源9.对计算机的软、硬件进展管理是__ ____的功能。
A. 操作系统B. 数据库管理系统C. 语言处理程序D. 用户程序10.下面的四个表达中,只有一个是正确的,它是____。
A.系统软件就是买的软件,应用软件就是自己编写的软件B.外存上的信息可以直接进入CPU被处理C.用机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过编译〔解释〕才能执行D.假如说一台计算机配置了FORTRAN语言,就是说它一开机就可以用FORTRAN 语言编写和执行程序答案:1.D 2C. 3.B. 4.D. 5.A. 6B 7.B 8. B 9. A 10. C二、判断题1.在微型计算机广阔的应用领域中,会计电算化应属于科学计算应用方面。
计算机的运算方法乘法运算
![计算机的运算方法乘法运算](https://img.taocdn.com/s3/m/a7c4c2844b73f242326c5f63.png)
将求得的各相加数逐个左移一位,最后一步一次求 和。 (3)两个n位数相乘得2n位乘积,共n个部分积需2n位 加法器相加。
有问题!!!
(1)在最后一步一次完成了n个部分积的求和,而计算机 运算器很难实现一次完成多个数据的同时相加,通常 只能完成对两个数的求和。
部分积
乘数
说明
0.0000
+ 0.1110
0.1110 逻辑右移 0 . 0 1 1 1
+ 0.0000
逻辑右移
0.0111 0.0011
+ 0.1110
1.0001 逻辑右移 0 . 1 0 0 0
+ 0.1110
1.0110 逻辑右移 0 . 1 0 1 1
1 1 0 =1
0 1 1 =0 0 1 0 1 =1 10 1 1 0 =1 110 0110
部分积 初态 z0 = 0
+ x*
1,得 z1
+0
+
1,得
x*
z2
+
1,得
x*
z3
1,得 z4
例6.21 结果
① 乘积的符号位 x0 y0 = 1 ② 数值部分按绝对值相乘
0=1
x*• y* = 0. 1 0 1 1 0 1 1 0 则 [x • y]原 = 1. 1 0 1 1 0 1 1 0 特点 绝对值运算
= (x0 y0). x*y* 式中 x*= 0. x1x2 … xn
y*= 0. y1y2 … yn
为 x 的绝对值 为 y 的绝对值
乘积的符号位单独处理 x0 y0
(计算机原理)第3章运算方法与运算器
![(计算机原理)第3章运算方法与运算器](https://img.taocdn.com/s3/m/4376f8674a35eefdc8d376eeaeaad1f3469311b8.png)
比较器
位串比较器和选择器 的实现,包括旁路比 较器和等效比较器的 应用。
控制电路
精度控制电路和后继 累加器的设计和应用, 提高运算精度和性能。
乘法示例
乘法运算的具体示例,讲解乘法 过程和计算结果。
定点数的除法运算
1被除数与除数的转换和余数计算。
2 除法电路
除法电路的设计和实现,包括整除器和余数计算器。
3 除法示例
除法运算的具体示例,讲解除法过程和计算结果。
浮点数的加减法运算
1
浮点数表示
浮点数的格式和表示方法,包括阶码和尾数的位数分配。
逻辑运算
包括布尔运算的实现,逻辑 运算与算术运算的转换,以 及位串比较器和选择器的应 用。
运算器的基本概念和分类
1 基本概念
运算器是一种用于进行算术和逻辑运算的电路,由算术逻辑单元(ALU)和控制单元组成。
2 分类
根据数据长度可分为多位数运算器和单位数运算器;根据功能可分为通用运算器和特殊 运算器。
2
加法运算
浮点数加法的原理和算法,包括对阶、尾数对齐和规格化。
3
减法运算
浮点数减法的原理和算法,包括对阶、尾数对齐和规格化。
浮点数的乘法运算
1 乘法算法
浮点数乘法的原理和算法,包括尾数相乘和阶码相加。
2 乘法电路
浮点数乘法电路的设计和优化,包括乘法器和累加器。
3 乘法示例
浮点数乘法的具体示例,讲解乘法过程和计算结果。
(计算机原理)第3章运算 方法与运算器
学习计算机原理第3章的运算方法与运算器,包括运算方法的分类、运算器的 基本概念和分类,以及不同类型数的加减法、乘法、除法运算,逻辑运算, 和位移运算等。
运算方法分类与特点
计算机的运算方法
![计算机的运算方法](https://img.taocdn.com/s3/m/254472385bcfa1c7aa00b52acfc789eb172d9e00.png)
计算机的运算方法计算机作为现代社会不可或缺的工具,其运算方法是实现各种任务的基础,本文将探讨计算机的运算方法及其分类。
一、二进制运算方法在计算机的世界里,二进制是最常用的数字系统。
计算机通过使用0和1表示数字,进行各种运算。
二进制运算方法主要包括加法、减法、乘法和除法。
1. 二进制加法二进制加法与十进制加法类似,只需掌握二进制加法表,根据进位规则进行计算。
例如,计算1101 + 1011,首先从右向左进行逐位相加,最后得出结果:1101 + 1011 = 11000。
2. 二进制减法二进制减法也与十进制减法相似,只需借位规则进行计算。
例如,计算1101 - 1011,首先从右向左进行逐位相减,若被减数小于减数,则向高位借位,最后得出结果:1101 - 1011 = 0010。
3. 二进制乘法二进制乘法可利用移位和加法运算来实现。
将乘数与被乘数的每一位相乘,并根据权值进行相加。
例如,计算1101 × 1011,从右向左进行逐位相乘并相加,最后得出结果:1101 × 1011 = 10001111。
4. 二进制除法二进制除法同样利用移位和减法运算来实现。
将被除数逐步减去除数的倍数,直到不能再减为止。
例如,计算1101 ÷ 1011,从左向右进行相除运算,最后得出商为10,余数为01:1101 ÷ 1011 = 10...01。
二、十进制运算方法除了二进制运算方法外,计算机也可以进行十进制的运算。
十进制是人类日常生活中使用最频繁的数字系统,可以直接进行加、减、乘、除等运算。
1. 十进制加法十进制加法与二进制加法类似,只需掌握十进制加法表,按照进位规则进行逐位相加。
例如,计算2389 + 5412,从右向左进行逐位相加,最后得出结果:2389 + 5412 = 7801。
2. 十进制减法十进制减法同样与二进制减法类似,只需按照借位规则进行逐位相减。
例如,计算5412 - 2389,从右向左进行逐位相减,若被减数小于减数,则向高位借位,最后得出结果:5412 - 2389 = 3023。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.求X+Y: (1)将X=-0.1010,Y= -0.0010转换成补码.
[X]补=1.0110 [Y]补=1.1110 1.0110
产生进 位,将进 位去掉
(2)求[X+Y]补
[X+Y]补=[X]补+[Y]补 =1.0110+1.1110 =1.0100 (3)求[X+Y]原
+1.1110
11.0100
3.1 数据的表示方法和转换 3.2 带符号数在计算机中的表示方法及运算(重点) 3.3 数据校验码(重点)
3.1 数据的表示方法和转换
一.十进制,二进制,八进制,十六进制的功能及特点.
1.十进制数是人们最习惯使用的数值,在计算机中一 般把十进制数作为输入输出的数据形式。 特点: 用十个数码表示——0、1、2、3、4、5、6、7、8、9 遵循“逢十进一”的规 则 2.二进制数使用的数码少,只有0和1, 在计算机内部存 储和运算中使用,也表示计算机元件的状态,运算简 单,工作可靠。 特点: 用两个数码表示——0、1 遵循“逢二进一”的规
要求 数1 数2 实际操作 结果符号
加法 加法 加法 加法
正 正 负 负
正 负 正 负
加 减
正 可正可负
减
加
可正可负
负
在计算机中正+正/负+负结果符号位很好确定, 但正+负/负+正结果符号位很难确定 ,容易出错。 计算机将原码转换成反码或补码进行计算.
3. 反码表示法
(1) 形式:正数的反码与原码相同,负数的反码为其原码 的符号位不变,其余各位按位变反,即0变为1,1变为0
写成(DCD)16,且与二进制转换方便,因此十六进制数 常用来在程序中表示二进制数或地址。
特点: 用十六个数码表示——0、1、2、3、4、5、6、7、 8、9、A、B、C、D、E、F 遵循“逢十六进一”的规 则
2
二.各进制之间的转换.(略) 三.各进制的加减运算.(略)
(1) (100101)2+(101101)2= (1010010)2
…
253 254 255
… …
+127 -0 -1
-125 -126 -127
… …
…
+127 -128 -127
-3 -2 -1
…
+127 -127 -126
-2 -1 -0
…
…
采用变形码计算好处:既能判断是否有溢出,又能判断结果的符号 位。 符号位 含义解读 00 无溢出,结果符号为正 01 正溢出,结果真正符号为正(正数+正数) 10 11 负溢出,结果真正符号为负(负数+负数) 无溢出,结果真正符号位为负数
无符号数的表数范围: 8 位
16 位
0 ~ 65535
二、有符号数(机器数)P19
1. 机器数与真值
真值
带正负号的数
机器数
符号数字化的数
+ 0.1011 – 0.1011 + 1100
0 1011
小数点的位置
1 1011
小数点的位置
0 1100
小数点的位置
– 1100
1 1100
小数点的位置
2. 原码表示法 (1) 形式 一个数,其符号用0或1进行编码,叫原码.用0表示+, 用1表示 如 x = +1110
如: 真值
+1001 -1001 +0.1101 -0.1101 [+0]反=00000 原码 01001 11001 0.1101 1.1101 [-0]反=11111 反码 01001 10110 0.1101 1.0010
(2)反码的运算
规则:1.反码运算时,其符号位与数值一起参加运算.
2.反码的符号位相加后如果有进位出现,则需把 它送到最低位去相加.
小数 0.1011 形式 整数 -1100 0 1011
小数点的位置
1 1100
小数点的位置
2.浮点数
(1)概念:小数点位置可以浮动的数据 (2)形式:N=M×RE 阶码
尾数 基数
科学计数法的表 达方式
(3)举例:
N1=3.14159(D)=0.314159×101=0.0314159×102
N2=0.011(B)=0.11×2-1=0.00011×22
1.0110
+0.0010
1.1000
5.移码. (1).移码的形式 用移码表示浮点数的阶码,能方便地判断浮点数的阶码大小 无论正数还是负数,移码与补码的数字位相同,符号位相反.
例4
已知:X=-0.0011011 ,求[X]移
分析:将其转换成补码,再转换成移码. X =-0.0011011 =[1.0011011]原 [+0]移=[-0]移=10000
第三章 计算机的运算方法
内容简介:本章主要介绍了计算机中数据的表示方法及 相互的转换过程, 带符号数的表示方法和运算,计算机数 据在传输过程中出错时采取的措施---数据校验的过程.
学习目标:1.熟悉并掌握计算机中数据的表示方法,相互转 换和相关运算. 2.理解数据校验的相关概念,掌握其校验的方法.
内容 提要
11010 0.1001
1.1001
[+0]补=[-0]补=00000
(2)补码的运算 规则:1.其符号位与数值部分一起参加运算 2.补码的符号位相加后如果有进位出现,则需把这 个进位舍去. 3.补码的运算形式: [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补
例2
已知:X=-0.1010,Y= -0.0010,求X+Y和X-Y(用补码运算完成)
(4)浮点数在计算机中的格式:
Ef E S M
阶码符号位
阶码
尾数符号位尾数移源自表示原码表示按照IEEE754标准,对上面格式进行简化: (阶符采用隐含式,包括阶码符号位和阶码) S(1位) E(1+7位) M(23位)
根据IEEE754标准,常用的浮点数有两种格式: 1.单精度浮点数共32位,阶码8位(内含1位符号位), 尾数24位(其中1位符号位提到最前面) 2.双精度浮点数共64位,阶码11位(内含1位符号位), 尾数53位(其中1位符号位提到最前面) 例题1 按单精度浮点数,阶符隐含式格式表示 N=-0.01101×23B 1 1 0000011 01101
2.可以将两数转换成反码相加,结果再转换 成真值.
(1)将X=0.1011,Y= -0.0100转换成反码.
[X]反=0.1011 [Y]反=1.1011 (2)求[X+Y]反 [X+Y]反=[X]反+[Y]反 =0.1011+1.1011 =0.0111 (3)求[X+Y]原
产生进位, 将其送到 最低位相 加
加6(0110)进行 修正
8
3
3.2 带符号数在计算机中的表示方法及运算
一.概述
计算机中参 与运算的数 注 意 无符号数(正整数) 有符号数 存放于寄存 器中
无符号数在寄存器中的每一位均可用来存 放数值,当存放有符号数时,则需留出位置 存放符号,在机器字长相同时,无符号数和 有符号数的表数范围是不同的. 0 ~ 255
3.反码的运算形式:
[X+Y]反=[X]反+[Y]反
例1
[X-Y]反=[X]反+[-Y]反
已知:X=+0.1011,Y= -0.0100,求X+Y 分析:1.题目中给出的两个数均为真值,且分别是 正数和负数,在计算机中真值均被转换成其他码 制计算. 思考:能否将X,Y转换成原码,直接相加?为什么?
不能,因为原码中正数和负数相加符号位不能确定
(1)1 + 8= 9 0001
大于1001 需修正
(2)4+9= 13 0100
+1000
1001
+1001
1101 + 0110 10011
加6(0110)进 行修正
进位 不需修正
0001 0011
(3)(28)D+(55)D= (83)D 0010 + 0101 0111 + 1000 1000 1000 0101 1101 0110 0011 0011
0.1011 +1.1011 10.0110 + 1 0.0111
结果为正数,反码形式与原码形式相同. [X+Y]原=0.0111
则X+Y=+0.0111
4. 补码表示法 (1) 补码的形式 正数的补码与原码相同,负数的补码为其反码的末位 加一可得
真值 +1010 -1010 +0.1001 -0.1001 原码 01010 反码 01010 10101 0.1001 1.0110 补码 01010 10110 0.1001 1.0111
x = 1110
x = + 0.1101 [x]原 = 01110
[x]原 = 11110
[x]原 = 0 . 1101
x = 0.1101
[+0]原=00000
[x]原 = 1.1101
[-0]原=10000
简单、直观 (2)原码的优点: 缺点:进行加减法运算时,比较复杂. 用原码做加法时,会出现如下问题:
[x]移= 10101
[y]补= 00110 [-y]补= 11010 [x+y]移=[x]移+[y]补= 10101+00110= 11011
[x-y]移=[x]移+[-y]补=10101+11010= 01111(溢出)
注意