按位取反运算符:~
运算结果:~x=-(x+1)
例如:~9为-10
~(-9)为8
这不是按位取反吗?怎么结果是这样?
看下面。
一、~9的计算步骤:
转二进制:0 1001
计算补码:0 1001
按位取反:1 0110【按位取反发生在这里】
要知道它所表达的数是多少,需要转换为原码
_____
转为原码:按位取反:1 1001
末位加一:1 1010
符号位为1是负数,即-10
二、~-9的计算步骤:
转二进制:1 1001
计算补码:1 0111
按位取反:0 1000【按位取反发生在这里】
要知道它所表达的数是多少,需要转换为原码____
转为原码:正数的补码和原码相同,仍为:0 1000,即8