计算机的运算方法

  1. 无符号数和有符号数
  2. 数的定点表示和浮点表示
  3. 定点运算
  4. 浮点四则运算
  5. 算数逻辑单元

无符号数和有符号数

无符号
有符号
- 机器数与其真值
- 原码表示法
- 补码表示法
- 反码表示法
- 移码表示法

无符号:只有数值
有符号:正负号,0正1负

机器数 真值
01011 +0.1011
11011 -0.1011

原码
如x=-1110,原码:1,1110 [逗号将符号和真值分离]
如x=-0.1101,原码:1.1101[小数点将符号和真值分离]
小数用点,整数用逗号分离真值和符号

加减法归一化
正负数相加减都可以转换成两个数相加。

补码
减法操作可以用它的补数替代。
当真值为正数,补数为其本身
当真值为负数,补码可用原码除符号位每位取反,末位加1求得

反码
当真值为负数,反码可用原码除符号位每位取反

小结:
最高位为符号为,整数逗号,小数点,将符号和真值区分开
对于正数,原码=反码=补码
对于负数,符号位为1,数值部分,补码是每位取反,末位加1。反码是每位取反。

移码
补码很难直接判断其真值大小
计算机的运算方法
补码与移码只差一个符号位

数的定点表示和浮点表示

定点表示
浮点表示、形式、范围、规格化
IEEE754

定点表示:
根据定点机小数点约定的位置,可将其分为整数定点机与小数定点机。
1.23 小数定点
123.0整数定点

浮点表示

背景:

  1. 编程困难
  2. 表示范围小,可以表示两个相差很大的数据。
  3. 数据存储单元利用率低

计算机的运算方法
为了提高数据精度以及便于浮点数的比较,在计算机中规定浮点数的尾数用纯小数形式。

浮点数表示形式
计算机的运算方法
尾数是小数,其位数n反映了浮点数的精度。

浮点数表示范围
计算机的运算方法

如果m=4,n=10,表示数据长度最多16位。
1位阶符,1位尾符,4位表示阶码,10位表示尾数的数值部分。
能够表示二进制是2的十六次方个数
有限数据表示无限多实数

上溢:阶码大于最大阶码。
下溢:阶码小于最小阶码,按机器零处理。
当浮点数阶码小于最小阶码时,称为下溢,此时溢出的数绝对值很小,通常将尾数各位强置为零,按机器零处理。

浮点数规格化
提高表示精度:
基数不同,浮点数的规格化形式不同。
规格化形式:
基数r越大,可表示的浮点数范围越大。
计算机的运算方法

算数逻辑单元

ALU电路
快速进位链
-并行加法器
-串行进位链
-并行进位链

  1. 单重分组跳跃进位链
  2. 双重分组跳跃进位链

运算器可由具有移位功能的寄存器和全加器组成。

ALU电路
计算机的运算方法
进位链:传送进位的电路
串行进位链:进位串行传送
进位链是加法器电路性能的瓶颈
所以需要对进位链进行优化:
计算机的运算方法
与非门延迟时间是Ty。

并行进位链
n位加法器进位同时产生
计算机的运算方法
单重分组跳跃进位链
计算机的运算方法
16位进位需要10个ty,而串行进位需要32个ty。
单重分组跳跃进位链是将n位全加器分为若干小组,小组内的进位同时产生,小组与小组之间采用串行进行。

双重分组跳跃进位链
双重分组跳跃进位链是将n位全加器分为几个大组,大组内又包含若干小组,每个大组内所包含的各小组的最高位进位是同时产生的,大组和大组采用串行进位。
计算机的运算方法
计算机的运算方法
32位,串行进位需要64个Ty,而双重分组跳跃进位链仅需要10个Ty。