原理:1. 在计算机中整数用补码表示,非负数的补码是自身的二进制表示,负数的补码是相反数的二进制表示按位取反然后加1
2. python中整数的按位取反运算是先对整数的补码进行按位取反然后再回到整数
例子:~(-6)=5
步骤:(1)先求-6的补码表示:
-6 ——> 6(相反数) ——> 0000 0110(二进制表示) ——> 1111 1001(按位取反) ——> 1111 1010(加1)
(2)按位取反:
1111 1010 ——> 0000 0101(按位取反)
(3)回到整数:
0000 0101 ——> 5(回到整数)
推论:~5=-6
证明:把步骤逆回去就是。
推论:n为非负整数,则 ~n = n-1