负数的取反

/* 原文已于2021/3/11日做出修正 */
本蒟蒻因为在某代码中看到~(-1)=0 感到困惑,所以好好的学习了如下内容,弄亲了反码与取反运算的区别,特写此文用于日后回顾。
1,原码,反码,补码

1.1 原码
原码就是将一个数转化为二进制数。
如:14----- 00001110
1.2 补码
补码分两种正数的补码和负数的补码
1.2.1 正数补码
正数补码就是其本身
如:原码:14------00001110
补码: 00001110
1.2.2 负数补码
负数补码是将原码求反码(每一位按位取反(不包括符号位),即第一位)后加1。
如: 原码 14------00001110
除符号位按位取反 01110001
取反后加1 01110010
1.3 反码
无论是负数还是正数,反码就是除符号位按位取反,也就是0变1,1变0。
如:-14 ------- 10001110
反码--------11110001


2,取反运算符 ~
取反运算用我的话就是一句:
无论是什么数,正数也好,负数也罢,都要进行以下步骤
1,求补码
2,按位取反
3,求补码
不信的可以参考一下其他人的文章中的例子:
取反运算的正反示例


你可能感兴趣的:(学习,补码)