正数(先加一再取反):
例:
65
01000001 // 65的原码
10111110 // 对65的二进制进行按位取反,不是求反码不要弄混淆
11000001 // 对取反后的值再取反,符号位不变
11000010 // 对取反后的数据进行加“1”操作
11000010(二进制)= -66(十进制)
~65 = -66
负数(先取反再加一):
例:
-66
11000010 // -66的原码
00111101 // 对-66的二进制进行按位取反,同理不是求负数的反码
00111110 // 对取反后的二进制数据进行加“1”操作,符号位不变
01000001 //对加“1”后的数据进行取反
01000001(二进制)= 65(十进制)
~(-66)= 65
网友评论