学习笔记
-----------------------------
溢出判断:
只有“正数+正数”才会上溢-----正+正=负
只有“负数+负数”才会下溢-----负+负=正
计算机溢出判断:
方法一:采用一位符号位;设A的符号为As,B的符号为Bs,运算结果的符号为Ss,溢出的逻辑表达式为:
若v=0,表示无溢出,若v=1,表示有溢出。
方法二:采用一位符号位;根据数据进位情况判断溢出:符号位的进位Cs 最高数值位的进位C1
即Cs与C1不同时有溢出。
Cs=0,C1=1:上溢
Cs=1,C1=0:下溢
处理不同的逻辑表达式:V=Cs异或C1
若V=0,表示无溢出;若V=1,表示有溢出。
方法三:采用双符号位
正数符号为00,负数符号为11,运算结果符号位为01,则是上溢;结果符号位为10,则是下溢。
双符号位补码:模4补码;单符号位补码:模2补码
(实际存储时双符号位只存储一个符号位,运算时会复制一位符号位)
---------------
符号扩展:
短数据如何扩展为长数据?
定点整数的符号扩展:
在原符号位和数值位中间添加新位,正数都添0;负数反,补码添1
定点小数的符号扩展:
在原符号位和数值位后面添加新位,正数都添0;负数原、补码添0,负数反码添1