有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java中int的否定输出混淆

我有一个整数 ^否定后{}即{}
它不是应该是0000 0000=>0
基本上想要~255 to 0像8位二进制格式,即
1111 1111 to 0000 0000而不将其设为负数


共 (1) 个答案

  1. # 1 楼答案

    问题是a可能是int类型的,在Java中它占用4个字节。所以你得到的是:

    1111 1111 1111 1111 1111 1111 0000 0000
    

    如果你知道你总是要用8位运算,你应该屏蔽结果:

    int b = ~a ^ 0xFF;