在JAVA中 若int a=9 输出时b=~a b怎么输出的是-10
发布网友
发布时间:2024-01-20 04:42
我来回答
共4个回答
热心网友
时间:2024-01-22 10:01
你觉的应该是多少?
~是按位取反。
9取反就是-10啊。
在计算机系统中,数值是用补码来表示的。
9用二进制表示原码是 0000 1001
反码是:0000 1001
补码是:0000 1001
~表示按位取反得到~后的补码:1111 0110
取反得:1000 1001
求原码:反码+1得1000 1010,最高位为1表示负数,后7位000 1010是10,所以是-10
热心网友
时间:2024-01-22 10:02
~是位运算符。取反。0变1,1变0
System.out.println(Integer.toBinaryString(9));
System.out.println(Integer.toBinaryString(10));
System.out.println(Integer.toBinaryString(-9));
System.out.println(Integer.toBinaryString(-10));
看看他们的二进制,你应该就懂了。如果不懂,呃,去搜索【补码,反码,原码】
热心网友
时间:2024-01-22 10:02
public class TestClass
{
public static void main(String[] args) {
int n=9;
int result;
int k=1;
while(!(k>9)){
k=k<<1;
}
k=k-1;
result=(~n)&k;
System.out.println(result);
}
}
热心网友
时间:2024-01-22 10:03
~是按位取反。