java当中的非运算怎么算。。。。

来源:百度知道 编辑:UC知道 时间:2024/06/18 07:05:28
java中一个int占4字节,也就是32位,
int a = 15;
a的二进制表示为 00000000 00000000 00000000 00001111 对吧?
~a之后应该为:
11111111 11111111 11111111 11110000

程序运行结果为 -112,可是
11111111 11111111 11111111 11110000 肯定不是-112啊?

1110000是112.
可是前面的 11111111 11111111 11111111呢? 这里不太明白。

你 不知道计算机编码啊 :字节高位为1是负数 0是正数

楼上正解,第一位如果是1的话就是负数了,因为java是没有无符号int的,所以40亿多亿是正的,要是超过了就变成负数了