Python位运算

2019-01-02  本文已影响0人  小龙虾0o0
计算机中有原码,反码,补码的概念。计算机只能储存数字数据,而且是数字的补码,运算时也通过补码,因为计算机中只有加法器,通过补码操作不会出错。但是打印出来我们看见的是原码。

1.原码

符号位+真值(最高位为符号位,0正1负)

001 表示 1
110 表示 -2

2.反码

正数反码:即原码
负数反码:原码符号位不变,其余位取反

001 反码为 001
110 反码为 101

3.补码

正数补码:即原码
负数补码:反码+1

001 补码为 001
110 补码为 110

4.位运算(都是补码运算)

001 & 110 即 000

001 | 110 即 111

~ 001 为 110 即补码 101 即原码 110 即 -2
~ 110 为 001 即补码 001 即原码 001 即 1

001 ^ 110 即 111 即补码 110 即原码 101 即 -1

num << N 即 num * 2 ** N
num >> N 即 num // 2 ** N

上一篇 下一篇

猜你喜欢

热点阅读