定点运算

移位运算

移位的意义

移位是指数据位移动,而不是小数点移动

左移 - 绝对值扩大

右移 - 绝对值缩小

在计算机中,移位与加减配合可以实现乘除运算。

算数移位的规则

符号位不变

码制 填补代码
正数 原码,补码,反码 0
负数 原码 0
负数 补码 左移添0
负数 补码 右移添1
负数 反码 1

算数移位与逻辑移位的区别

  • 算数移位:有符号数的移位。
  • 逻辑移位:无符号数的移位。
    • 左移右移都是补0。

加减法运算

  • 加法

    • 整数:$[A]_补+[B]_补=[A+B]_补(mod\ 2^{n+1})$
    • 小数:$[A]_补+[B]_补=[A+B]_补(mod\ 2)$
  • 减法

    • 整数:$[A-B]_补=[A+(-B)]_补=[A]补+[-B]_补(mod\ 2^{n+1})$
    • 小数:$[A-B]_补=[A+(-B)]_补=[A]补+[-B]_补(mod\ 2)$

溢出判断

一位符号位判断溢出

满足下面式子则溢出:

$最高有效位进位 \oplus 符号位进位=1$

两位符号位判断溢出

需要设置两位符号位:
$$
[x]_补=\begin{cases}
00,x & 1 > x \ge 0 \\
4+x & 0 > x \ge -1(mod\ 4)
\end{cases}
$$
结果的双符号位相同,未溢出

结果的双符号位不同,溢出

说白了就是正数符号位00,负数符号位11,如果算完变成10或者01就溢出了。

乘法

不会

image-20230518000440727

image-20230518000709962

除法

暂不掌握

最后修改:2023 年 05 月 18 日
如果觉得我的文章对你有用,请随意赞赏