模4补码与模2补码
模4补码和模2补码都是把负小数变为正数从而规避负号问题(将负号转为数值)的一种方法。
*以负小数-0.1101为例
将其原码表示时
1 | 不使用模操作,只是将符号位设置为1 |
将其模2补码表示时
1 | 使用模2操作,以2为模,相减求其补码。相当于每次加2,都等于加0 |
将其模4补码表示时
1 | 模4补码也称变形补码 |
模2补码和模4补码所加的数都是加在符号位上,并不会影响绝对值的大小,所以在进行补码乘法时,通常不会代入符号位进行相乘
基于模4补码与模2补码的特点
模2补码–单符号位
模4补码–双符号位
通过符号位判断溢出
- 一位符号位判断溢出:参与操作的两个符号数相同,但计算结果与原操作数不同,则溢出了
- 双符号位判断溢出:两个符号位存储相同的符号数,当计算之后结果两个符号位不同,说明溢出
- 一位符号位+进位情况:符号位进位与最高位数值位产生的进位相同时无溢出,否则溢出
双符号位溢出情况
| s1s2符号位 | 表示情况 |
|---|---|
| s1s2=00 | 表示结果为正,无溢出 |
| s1s2=01 | 表示结果正溢出 |
| s1s2=11 | 表示结果为负,无溢出 |
| s1s2=10 | 表示结果负溢出 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 风起之时'blog!











