public class BitwiseOperations {
public static void main(String[] args) {
// 按位与 (&)
int a = 5; // 二进制: 0101
int b = 3; // 二进制: 0011
int andResult = a & b; // 0001 (十进制: 1)
System.out.println("a & b = " + andResult);
// 按位或 (|)
int orResult = a | b; // 0111 (十进制: 7)
System.out.println("a | b = " + orResult);
// 按位异或 (^)
int xorResult = a ^ b; // 0110 (十进制: 6)
System.out.println("a ^ b = " + xorResult);
// 按位取反 (~)
int notA = ~a; // 取反后,由于Java中整数是带符号的,所以结果为负数
System.out.println("~a = " + notA);
// 左移 (<<)
int leftShift = a << 1; // 1010 (十进制: 10)
System.out.println("a << 1 = " + leftShift);
// 右移 (>>)
int rightShift = a >> 1; // 0010 (十进制: 2)
System.out.println("a >> 1 = " + rightShift);
// 无符号右移 (>>>)
int unsignedRightShift = a >>> 1; // 0010 (十进制: 2),对于正数,无符号右移和右移效果相同
System.out.println("a >>> 1 = " + unsignedRightShift);
}
}
&):两个位都为1时,结果才为1。例如 0101 & 0011 结果为 0001。|):只要有一个位为1,结果就为1。例如 0101 | 0011 结果为 0111。^):两个位不同则结果为1。例如 0101 ^ 0011 结果为 0110。~):将每个位取反。例如 ~0101 结果为 1010,但由于Java中整数是带符号的,所以结果为负数。<<):将所有位向左移动指定的位数,右边补0。例如 0101 << 1 结果为 1010。>>):将所有位向右移动指定的位数,左边补符号位(正数补0,负数补1)。例如 0101 >> 1 结果为 0010。>>>):将所有位向右移动指定的位数,左边补0。例如 0101 >>> 1 结果为 0010,对于正数,无符号右移和右移效果相同。上一篇:java 定义数组
下一篇:java排序
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站