85mm定焦镜头拍摄距离:按位取反运算的问题

来源:百度文库 编辑:高考问答 时间:2024/05/06 02:44:28
//位运算
public class test
{
public static void main(String args[])
{
int a;
a=36;

System.out.println("a="+a);
System.out.println("~a="+(~a));

}
}
如果按位取反运算是对数据的每个二进制位取反,那么~a为什为什么不是27而是-37?

int型的36对应二进制是00000000 00000000 00000000 00100100,取反后是11111111 11111111 11111111 11011011,这是一个整型负数的补码,按“减1取反”的方法得到其绝对值是00000000 00000000 00000000 00100101,即十进制的37,所以该负数为-37

0100100取反为1011011

其中 最高位为符号位.