public class A{
public static void main(String[] args){
int a=10;
System.out.println(~a);}
}
//输出结果为-11(~是按位取反操作符)
此题输出结果为什么是-11呢?要解决此问题,
得明白整型在计算机是怎么存储的,
它是以二进制补码形式存储的,占4个字节即32位。
10二进制表示为: 00000000 00000000 00000000 00001010 (第一位代表符号位,0为正,1为负)
10补码保持不变: 00000000 00000000 00000000 00001010
~10二进制表示为: 11111111 11111111 11111111 11110101
~10补码取反加1为:10000000 00000000 00000000 00001011(负数第一位符号位保留)
即结果为-11