第三章预习

一、高级语言和机器指令中的运算

  1. 按位运算

C语言中按位运算有:符号|表示按位OR运算;符号&表示按位AND运算;符号~表示按位NOT运算;符号^表示按位XOR运算。

  1. 逻辑运算

几种常见的运算。和并或 逻辑true false

  1. 移位运算辑移位和算术移位
  • 逻辑移位:不考虑符号位,总是把高(低)位移出,低(高)位补0。对于无符号整数的逻辑左移,如果最高位移出的是1,则发生溢出。
  • 算术移位:左移时,高位移出,低位不0,每移一位,如果左移前、后符号为不同,则发生溢出;右移时,低位移出,高位补符号位。
  1. 位扩展和位截断运算
  • 0扩展:用于无符号数,只要在短的无符号数前面添加足够的0即可。
  • 符号扩展:补码表示的带符号整数,通过在短的带符号整数前添加足够多的符号位来扩展。

二、基本运算部件

1.串位进行加法器

  • 串行进方式:n位加法器,X与Y逐位相加,位间进位串行传送。
  • 只有一个全加器,数据逐位串行送入加法器中进行运算。进位触发器用来寄存进位信号,以便参与下一次运算。
  • 行进位加法器速度慢的主要原因是进位按串行方式传递,高位进位依赖低位进位。

2.并行进位加法器

用n位全加器实现两个n位操作数各位同时相加,这种加法器称为并行加法器。并行加法器中全加器的个数与操作数的位数相同。并行加法器中全加器的位数与操作数的位数相同,可同时对操作数的各位相加。计算机内部大多采用两级或多级先行进位加法器。

3.带标志加法器

三、定点数运算

1.补码加减法

  • 运算表达式
  • 判断是否溢出

2.原码加减运算

比较两个操作数的符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差``求和时,数值位相加,若最高位产生进位则结果溢出``求差时,被加数数值位加上加数数值位的补码

3.移码加减运算

  • 移码的和、差等于和、差的补码。

4.原码乘法运算

  • 原码一位乘法
    (1)确定乘积的符号位。由两个乘数的符号异或得到。
    (2)计算乘积的数值位,乘积的数值部分分为两个乘数的数值部分之积。
  • 原码二位乘法
    原码两位乘是用两位来决定新的部分积的形成,形成4种状态

5.补码乘法运算

  • 补码一位乘法
    (1)将符号位和数值位合在一起参与运算,直接得出用补码表示的乘积,且正数和负数同等对待称为布斯乘法
    (2)符号位参与运算,运算的数均以补码表示,被乘数 x 取双符号位,乘数 y 取单符号位
    (3)运算规则
  • 补码二位乘法

6.原码除法运算

  • 先进行判断:除数是否为0,商是否为0,是否溢出或为不确定的值NaN
  • 手算除法基本要点
  • 与乘法运算一样,要将符号位和数值位分开来处理。商的符号为相除两数符号的异或值,商的数值为两数绝对值之商。
  • 单精度除法,其商的位数一定不会超过n位,因此不会发生溢出;双精度除法,商的位数可能多于n位,因此,可能发生溢出
  • 恢复余数除法
  • 不恢复余数除法
    (1)“正、1、减、负、0、加”:若中间余数为正数,则上商为1,下次做减法;若中间余数为负数,则上商为0,下次做加法

7.补码除法运算补码恢复余数除法

补码恢复余数除法采用“够减则上商为1,不够减则上商为0”的上商方式,因此,最后若商为负值,则需要“各位取反,末位加1”来得到真正的商补码不恢复余数除法``被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数。余数与除数同号,商上1,余数左移一位减去除数;余数与除数异号,商上0,余数左移一位加上除数。(注意:余数左移加上或减去除数后就得到了新余数。直到商的位数满足要求为止。

四、浮点数相加减

1.浮点数加减运算

对阶、尾数运算、规格化、舍入处理、溢出判断

2.浮点数乘除运算

先进行判0处理,规格化操作和溢出判断

(1)乘法运算:尾数相乘,指数相加;尾数规格化;尾数舍入处理;溢出判断浮点数除法运算

(2)除法运算:尾数相除,阶相减;尾数规格化;尾数舍入处理;溢出判断

posted @ 2020-10-07 21:29  VirusHunter  阅读(118)  评论(0编辑  收藏  举报