题目:学习按位取反在二进制表示中的应用。
说明:
在计算机中,二进制数以补码形式存储。
按位取反是指把二进制的每一位都取反,0 变成 1,1 变成 0。
最高位是符号位,正数的符号位为 0,负数为 1。
对于正数,最高位为 0,其余位表示数值本身(用二进制表示),例如 +42 的补码是 00101010。
对于负数,将该数的绝对值的补码按位取反后再加 1,即可得到该数的补码。例如 -42 的补码为 11010110(00101010 按位取反得到 11010101,再加 1 得到 11010110)。
~9 的计算步骤:

转为原码

程序源代码

以上实例输出结果为

说明:
~7,对 7 进行取反,7 的补码是 00000111,对补码取反得到 11111000,最高位 1 为符号位,表示负数,所以该补码对应的整数为 -8。
~-7 对 -7 进行取反,-7 的补码是 11111001,对补码取反得到 00000110,最高位 0 为符号位,表示正数,所以对应的整数为 6。
