Java如何使用一元按位补码“〜”运算符?

一元按位补数运算符(~)反转位模式;它可以应用于任何整数类型,每个0a1和每个1a 0。

例如,整数包含32位;将此运算符应用于位模式为的值,00000000000000000000000000001000会将其模式更改为11111111111111111111111111110111。

package org.nhooo.example.fundamental;

public class UnaryBitwiseComplementOperator {
    public static void main(String[] args) {
        // 整数类型包含32位信息。
        // 8 = 00000000000000000000000000001000
        int number = 8;
        System.out.println("number = " + number);
        System.out.println(Integer.toBinaryString(number));

        // 使用〜运算符可通过更改
        // 每个“ 0”到“ 1”以及每个“ 1”到“ 0”。"0" to "1" and every "1" to "0".
        // 00000000000000000000000000001000
        // 11111111111111111111111111110110111
        //
        int invertedNumber = ~number;
        System.out.println("invertedNumber = " + invertedNumber);
        System.out.println(Integer.toBinaryString(invertedNumber));
    }
}

代码段的结果:

number = 8
1000
invertedNumber = -9
11111111111111111111111111110111