Ⅰ. 无符号数与有符号数
1.1 无符号数
- 寄存器的位数称为机器字长,反映了无符号数的表示范围
1.2 有符号数
1.2.1 机器数与真值
- 真值指的是我们平时常用的带符号的数,如+0.1011;机器数是指符号数字化的数,如
1.2.2 原码表示法
1.2.3 补码表示法
正数的原码、反码、补码 相同,负数原码 逐位取反,其结果再加 1
1.2.4 反码表示法
三种机器码的总结
- 最高位为符号位,书写上用“,”(整数)或“.”(小数)分隔符号位和数值部分
- 正数的三码形式相同
- 负数的补码为其原码逐位取反再加1;反码为其原码逐位取反
1.2.5 移码表示法
- 补码难以直接判断其真值大小,故采用移码表示;对真值加上一个2n(n为整数的位数)即可成为移码
Ⅱ. 数的定点表示和浮点表示
2.1 定点表示
- 小数点位置在数符部分或数值部分之后,只能分别表示纯小数或纯整数
2.2 浮点表示
- 常常而言,计算机要处理的并非完全是纯小数或纯整数,而且有些数据数值范围相差很大,并不能用定点小数或定点整数表示,因而引进了浮点数
- 如何表示这些数呢?可以由类比科学计数法,使得非纯小数或非纯整数变为规范形式
- 浮点数的规范化数:尾数最高位为1的浮点数
- N = S × r j ,其中S称为尾数,r称基数,j为阶码,一般而言,计算机的基数通常为2及其幂方
2.3 定点数与浮点数的比较
- 位数相同,浮点数表示范围比定点数大得多
- 浮点数规格化数的相对精度高于定点数
- 浮点运算的步骤多,运算速度将低于定点数,运算线路也更复杂
- 浮点数在数的表示范围,数的精度,溢出处理和程序编程方面优于定 点数,但在运算规则,运算速度,硬件成本方面又不如定点数
Ⅲ. 定点运算
3.1 移位运算
- 对有符号数的移位称算术移位,对无符号数的移位称逻辑移位
3.1.1 算术移位的规则
- 对于正数: 三码(原,反,补)移位后的空位以0添补
- 对于负数:
- 原码——空位补0
- 反码——空位补1
- 补码——左移添0,右移添1
3.1.2 逻辑移位
3.2 加减法运算
3.2.1 溢出判断
①一位符号位判断
- 参加操作的两个数符号相同,结果的符号位与操作数不同即为溢出
②双符号位判断
3.3 乘法运算
- 可以看出,乘法运算可以拆分为加法和移位
- 解读上式的最后一步,①将A与累加器内的初始值0相加,随后乘以乘数的最低位得到结果,此时乘数的最低位可以右移舍弃;②上一步的结果右移一位,存入累加器中,将A与乘数的最低位相乘得到结果,乘数最低位再次右移舍弃;③重复②的步骤,此时A与乘数最低位0相乘,表示此时不需将A与上一步结果相加,乘数最低位右移舍弃,进入下一步;④重复直至乘完所有位,此时所得结果即为A和B相乘的结果
3.3.1 原码乘法
3.3.2 原码除法
- 我们规定,小数除法中,被除数<除数;整数除法中被除数>除数;并且,被除数和除数均不为0
Ⅳ. 浮点运算
4.1 加减运算
- ①对阶:
- 因为如果对操作数进行左移操作,可能会导致数值高位的丢失,导致其大小改变;而如果对操作数进行右移操作,则可能会导致数值低位的丢失,导致其精度改变,权衡之下,更宜采用右移方式进行对阶
- 对阶原则:小阶向大阶对齐
- ②尾数补码求和
- ③规格化:尾数求和后,可能会出现结果并非规格化数的形式,因而需要对结果进行规格化
- 左规:尾数每左移1位,阶码减1,直到数符和第一数位不同为止
- 右规:尾数溢出(>1)时采用右规,即尾数(双符号位)出现01.XX...X或10.XX...X时;尾数每右移1位,阶码加1
- ④舍入:在对阶和右规过程中,可能出现尾数末位舍弃引起误差,此时考虑舍入的几种方法
- 0舍1入法
- 恒置1法
Ⅴ. 算术逻辑单元(ALU)
5.1 ALU电路
- Ai和Bi是输入变量;Ki为控制信号,表示这一次该作何运算;Fi是运算结果
5.2 快速进位链
5.2.1 并行加法器
- 上图完全是数电课程中的并行加法器,由多个全加器组成
5.2.2 串行进位链
5.2.3 并行进位链
(1)单重分组跳跃进位链
n位全加器分成若干个小组,小组中的进位同时产生,小组与小组之间采用串行进位
(2)双重分组跳跃进位链
n位全加器分成若干个大组,大组中又包含若干小组。每个大组中的小组中的最高进位同时产生,大组与大组之间采用串行进位
Written by Tknight9 ©
Written in 12/17/2020