按位与 & 按位或 | 按位异或 ^ 按位取反 ~

按位与 &
1 将两个整数的二进制表示按位进行与运算,只有当相应的二进制位都为1,结果才为1,否则结果为0
int a = 32;
int b = 25;
System.out.println(a & b)
a的二进制: 00100000
b的二进制: 00011001
----------------------
& 00000000
2. 拿着这个数字和1进行按位与,如果结果是1,则表示该数字为奇数

按位或 |
1 将两个整数的二进制表示按位进行或运算,只有当相应的二进制位都为0时,结果才为0,否则结果为1
int a = 32;
int b = 25;
System.out.println(a | b)
a的二进制: 00100000
b的二进制: 00011001
----------------------
& 00111001
2. 可以将某个二进制位设置为1

按位异或 ^
1 将两个整数的二进制表示按位进行异或运算,只有当相应的二进制位不同时,结果才为1,否则结果为0
int a = 32;
int b = 25;
System.out.println(a ^ b)
a的二进制: 00100000
b的二进制: 00011001
----------------------
& 00111001
2. 按位异或具有自反性: a ^ b ^ b = a

按位取反 ~
1 将整数的二进制表示按位进行取反运算,即0变1,1变0
int a = 32;

    System.out.println(~a)
    a的二进制: 00100000
    ----------------------
             ~11011111
posted @ 2025-06-03 15:26  如夢初醒  阅读(6)  评论(0)    收藏  举报