位运算符:
计算机底层本质是二进制(半导体)运算
进制:
人类最常使用10进制:10个个位数 0、1、2、3、4、5、6、7、8、9 逢10进1
二进制:个位数只有2个 0 1
八进制:
十六进制:
-3+1=-2
0000 0001 1
1000 0011 -3
----------------
1000 0011 //-3的源码
1111 1100 //-3的反码
1111 1101 //-3的补码
//用-3的补码参与运算
0000 0001 1
1111 1101 -3的补码
-----------
1111 1110 //补码计算,源码读,所以要把补码转换为源码来读
----------
1111 1101//补码转换为反码
1000 0010//反码转换为源码
------------
读取结果就是-2
-1+2=1
0000 0010 //2的源码
1000 0001 //-1的源码
1111 1110 //-1的反码
1111 1111 //-1的补码
---------
0000 0010 //2的源码
1111 1111 //-1的补码
------------
1 0000 0001
//因为1字节只能存八位所有舍弃最高位,得到
0000 0001
所有最后得到结果1
按位取反步骤
- 首先需要把10进制的数字转化为2进制,比如9的二进制如图。
2. 之后,可以直接写出来补码和反码,因为正数的补码和反码与原码一致,所以按位计算不需要过多操作。
3. 然后将符号位和数字位全部取反。
4. 接着将取反之后的补码减去1,得到反码。
5. 将反码的数字位全部取反,得到原码
6. 之后转换为十进制的形式,得到的数就是9的取反结果。