数据与文字的表示
数的小数点表示
通常使用浮点数表示数据,浮点数由阶符S、阶码E、尾数M组成
所谓浮点数,指小数点位置随比例因子的不同而可以在一定范围内自由浮动;而比例因子的大小由阶码指示
小数点位置在尾数域最高位的右边;而为了保证数据形式的一致性,规定尾数域的最高位为1,由此计算阶码;并将此位省去
由于指数有正有负,为了比较和计算的方便,将指数加上一定的偏移值(127或1023)
根据IEEE754标准,规格化的32位浮点数可以表示为
\[x=(-1)^S×(1.M)×2^{E-127}\]其中,32位浮点数阶符占1位,阶码占8位,尾数占23位;可表示范围的绝对值为 \([1.0×2^{-127},[1+1-2^{-23}]×2^{127}]\)
数的机器码表示
为了让数的符号位也参与运算,须将数用机器码表示
原码
符号位0正1负,后面加上绝对值
反码
将原码按位取反(除符号位)
补码
将反码末位加一(除符号位)
移码
符号位0负1正,后面加上绝对值
定点数的加减法
补码加法
两数的补码之和等于两数之和的补码(模$2^{n+1}$运算)
补码减法
减去某数的补码等于加上此数的相反数的补码
溢出
当相加或相减后的结果超出系统能表达的最大值时,发生溢出
\[[-y]_补=对[y]_补按位取反末位加一\]加法减法器
行波进位加法减法器由若干全加器和异或门组成,使用一根控制线控制加法减法运算
定点乘法
算数移位
算数左移右端补0;算数右移左端补符号位
由笔算乘法演变的计算方法
由若干次加法操作和移位操作组成
每次加上0倍或1倍的被乘数,然后进行一次移位操作,最终得到结果
计算方法的电路组成
首先分别计算逐位相乘的值,再通过阵列乘法器计算
定点除法
不恢复余数的加减交替法(补码表示)
- 减除数
- 若余数为负,上商为0,余数左移一位,加上除数
- 若余数为正,上商为1,余数左移一位,减去除数
- 重复23步骤直至达到要求精度
- 最后得到的余数为负数时,加上除数得到最终的余数
74181
74181 ALU是一种算数逻辑单元,由控制端 \(S_0-S_3 控制运算方式\) \(M 控制运算类型\) 和进位产生函数P、G构成
为了尽量减少进位带来的时间延迟,需要使用超前进位加法器减少多次等待进位的时间
而超前进位加法器由多个74182CLA和74181ALU构成
浮点数加减法
- 对阶:以阶码较大者为标准,通过左规和右规处理使得双方的阶码相同
- 尾数加减
- 规格化处理:若尾数溢出,将尾数右移一位,阶码加一;若符号位与最高数值位相同,左规处理
- 舍入处理:0舍1入法与恒置1法
- 阶码溢出判断:若上溢,置上溢标志;若下溢,置机器零(因为数值极小,可以视为0)