Java 有人能解释一下我们是如何得到这个输出的吗?(按位非)

Java 有人能解释一下我们是如何得到这个输出的吗?(按位非),java,Java,int x=10 System.out.println(~x) //这将打印-11 //如何使用补码算法手动执行计算可能这对您有所帮助:您可以按如下方式打印整数的位。在这里可以看到int表示为32位值。关于按位not运算符的解释,我想可以在网上找到 int x = 10; System.out.println(Integer.toBinaryString(x)); //00000000000000000000000000001010 System.out.println

int x=10

System.out.println(~x)

//这将打印-11


//如何使用补码算法手动执行计算可能这对您有所帮助:您可以按如下方式打印整数的位。在这里可以看到int表示为32位值。关于按位not运算符的解释,我想可以在网上找到

    int x = 10;
    System.out.println(Integer.toBinaryString(x));  //00000000000000000000000000001010
    System.out.println(Integer.toBinaryString(~x)); //11111111111111111111111111110101
    System.out.println(~x); //-11

这是一个否定运算符,它将考虑~x= -(10+1),所以你将得到-11作为输出。参考一些C语言书籍,你可以得到更多关于这方面的解释,我向你保证有很多关于

如何工作的指南。你在理解哪一部分方面有困难?如何手工计算以及如何理解?这是非常广泛的。你需要问一个具体的问题。