我对以下代码有疑问:
public class test {
public static void main(String args[]) {
byte x = 3;
x = (byte)~x;
System.out.println(x);
}
}
输出为:-4
最佳答案
numver
的二进制否定与对 number+1
取负值相同。原因如下:
二进制 3 为 0011
(跳过前导位以使其更具可读性)。
二进制否定~3
是1100
。
现在,二进制 4 是 0100
要确定-4,首先写二进制否定1011
。
然后添加一个(参见 wiki )1100
关于java - 为什么这个程序的输出是-4? (Java - 数据类型字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40800007/