整数Java上的布尔逻辑非运算符

时间:2014-12-08 22:20:12

标签: java boolean boolean-logic logical-operators

是否有一个方法接受16位无符号整数,并对其执行布尔逻辑NOT运算。

1 个答案:

答案 0 :(得分:3)

按位求反运算符为~。例如:

int i = 6;
System.out.println(~i);  // Prints -7

如果你想将整数视为无符号的16位整数(即忽略最重要的16位),你应该这样做

public static int u16neg(int i) {
    return ~i & 0xFFFF;
}

示例:

System.out.println(u16neg(0b00000000_00000000_00000000_00000110)); // 65529
System.out.println(       0b00000000_00000000_11111111_11111001);  // 65529