正数的取非
例:65
128 64 32 16 8 4 2 1
0 1 0 0 0 0 0 1 65的原码
1 0 1 1 1 1 1 0 对65的二进制进行按位取反,不是求反码不要弄混淆
1 1 0 0 0 0 0 1 对取反后的值再取反,符号位不变
1 1 0 0 0 0 1 0 对取反后的数据进行加“1”操作
1100 0010(二进制)= -66(十进制)
~65=-66(数据已验证确认无误)
负数的取非
例:-66
128 64 32 16 8 4 2 1
1 1 0 0 0 0 1 0 -66的原码
0 0 1 1 1 1 0 1 对-66的二进制进行按位取反,同理不是求负数的反码
0 0 1 1 1 1 1 0 对取反后的二进制数据进行加“1”操作,符合位不变
0 1 0 0 0 0 0 1 对加“1”后的数据进行取反
0100 0001(二进制)=65(十进制)
~(-66)=65(数据已确认无误)
注意:
正数和负数的加一操作正数的是先加一再取反,负数的先取反再加一