public class UnaryOperator {
public static void main(String[] args) {
byte a= -5;
System.out.println(~a); // prints 4
}
}
当我手动执行此操作时,我得到的答案为 6。
这是我的做法:
128 64 32 16 8 4 2 1
0 0 0 0 0 1 0 1
由于它是一个否定,我将其反转为以下内容:
128 64 32 16 8 4 2 1
0 0 0 0 0 1 0 1
sign -1 1 1 1 1 0 1 0
-----------------------------
0 0 0 0 1 0 1
add one--> 0 0 0 0 0 1 1
------------------------------
0 0 0 0 1 1 0 = 6
------------------------------
我知道我所做的事情有问题,但我无法弄清楚。
最佳答案
5 是 00000101
-5 是 11111010+00000001 = 11111011
~(-5) 是 00000100
所以你得到 4。
关于java - 如何计算-5的负(~),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29982223/