位运算:~(正负)运算步骤

    技术2025-11-07  22

    计算机中的整数是用补码存储的,最高位为符号位,C语言也遵从同样的规则。如果最高位为0则为正数,求值的时候,直接转为10进制即可。 最高位如果为1代表为负数,求值的时候,需要先把二进制的值按位取反,然后加1得到负数绝对值(相反数)的二进制码,然后转为10进制,加上负号即可。

    一、如果是正数如 ~8

    1、将8换成二进制即为: 00001000 2、取反 即为:11110111 3、因为符号位是1所以为负数(二进制负数转换为十进制:符号位不变按位取反加一即补码运算规则):10001001 4、转换成十进制为:-9

    二、如果是负数如~(-8)

    1、十进制负数转换为二进制的方法为:

    将十进制转换为二进制数。对该二进制数求反。再将该二进制数加1.就是将十进制数转换为二进制数求补码即为结果。比如:-8 第一步:8(10)=00001000(2) 第二步:求反:11110111 第三步:加1:11111000 所以-8(10)=11111000(2)

    2、再将-8的二进制取反为:00000111因为是正数,二进制转成十进制的结果为:7

    Processed: 0.017, SQL: 9