计算机中有原码,反码,补码的概念。计算机只能储存数字数据,而且是数字的补码,运算时也通过补码,因为计算机中只有加法器,通过补码操作不会出错。但是打印出来我们看见的是原码。
1.原码
符号位+真值(最高位为符号位,0正1负)
001 表示 1
110 表示 -2
2.反码
正数反码:即原码
负数反码:原码符号位不变,其余位取反
001 反码为 001
110 反码为 101
3.补码
正数补码:即原码
负数补码:反码+1
001 补码为 001
110 补码为 110
4.位运算(都是补码运算)
- & 按位与
每一位上数都为 1 就是 1 ,有 0 就是 0
001 & 110 即 000
- | 按位或
有 1 即为 1,全为 0 即 0
001 | 110 即 111
- ~ 按位取反
每一位取反
~ 001 为 110 即补码 101 即原码 110 即 -2
~ 110 为 001 即补码 001 即原码 001 即 1
- ^ 相同为 0,不同为 1
001 ^ 110 即 111 即补码 110 即原码 101 即 -1
- << 左移,>> 右移
num << N 即 num * 2 ** N
num >> N 即 num // 2 ** N
网友评论