2.舍入处理
(1)0舍1入
原码与补码尾数的最末位相同,因而采用相同的舍入方法。这种方法类似十进制中的“四舍五入”。
例:原码0.1101,舍入得0.111(只保留3位有效尾数)
原码0.1100,舍入得0.110
补码1.0011,舍入得1.010
补码1.0100,舍入得1.010
低位舍入后一般会产生误差,误差值小于被舍去位的权值
(2)末位恒置1
无论第n+1位是1还是0,舍入时都将第n位(最低有效位)固定设置为1。
例:原码0.1101,舍入得0.111(保留3位有效尾数)
原码0.1011,舍入得0.101
补码1.0011,舍入得1.001
补码1.0101,舍入得1.011
这种舍入方法比较简单,没有进位运算,逻辑上易于实现。当负数补码第n位被恒置1后,尾数其余各位与原码具有按位相反的对应关系,这在补码除法中求商值时很有用。
3.代码的扩展与压缩
(1)符号扩展与0扩展
符号扩展:指扩展符号数的位数时,直接把各扩展位(高位)设置为数符(0或1)。具体而言:对于真值为正的符号数,其符号位为0,则把扩展位全部置为0;对于真值为负的符号数,其符号位为1,所以在扩展位数时把扩展位全部都置为1。
对于补码格式的数,对它进行符号扩展时,不会改变原数的真值。
所谓0扩展,就是指在扩展数据位时,各扩展位均固定置为0。这种扩展模式主要是针对扩展位数时不必考虑数符或者该数据本身不具备符号位的数据,比如逻辑值。
例:80H->FF80H(符号扩展)
28H->0028H(符号扩展)
80H->0080H(0扩展)
28H->0028H(0扩展)
(2)数位压缩
长字长的数据位压缩成短字长数据位时,去除高位保留低位即可。
例:FF80H(-128)->80H(-128) (无损)
FE80H(-384)->80H(-128) (有损)
“21天好习惯”第一期-6
最新推荐文章于 2023-10-17 22:45:50 发布