运算对象为数字的补码,而不是二进制码。当补码的符号位为1时,说明该补码对应的是负数,所以根据补码求原码的时候遵循负数的原则,补码取反加一。如果符号位为0时,则该补码对应的原码与其相同。 -3: 1000 0011 (原码) 1111 1100 (反码) 1111 1101 (补码)(这是-3在计算机中的表示形式) ~(-3): 0000 0010 (补码)(~(-3)在计算机中的表示形式) 所以~(-3)=4 1: 0000 0001 (原码,反码,补码) ~1: 1111 1110 (补码)(~1在计算机中的表示形式) 1000 0010 (原码) ~1=-2