一、位与运算符(&)
位与运算符&对两个操作数的每一位进行逻辑与操作。
如果两个操作数的相应位都是1,则结果的相应位为1;否则为0。
demo:
public class BitwiseAndOperator {
public static void main(String[] args) {
int a = 12; // a的二进制表示为1100
int b = 7; // b的二进制表示为0111
int result = a & b; // 按位与操作后,结果为0100,即十进制的4
System.out.println("按位与的结果是: " + result);
}
}
二、位或运算符(|)
位或运算符|对两个操作数的每一位进行逻辑或操作。
如果两个操作数的相应位中至少有一个是1,则结果的相应位为1;否则为0。
demo:
public class BitwiseOrOperator {
public static void main(String[] args) {
int a = 12; // a的二进制表示为1100
int b = 7; // b的二进制表示为0111
int result = a | b; // 按位或操作后,结果为1111,即十进制的15
System.out.println("按位或的结果是: " + result);
}
}
三、位异或运算符(^)
位异或运算符^对两个操作数的每一位进行逻辑异或操作。
如果两个操作数的相应位不相同,则结果的相应位为1;如果相同,则为0。
demo:
public class BitwiseXorOperator {
public static void main(String[] args) {
int a = 12; // a的二进制表示为1100
int b = 7; // b的二进制表示为0111
int result = a ^ b; // 按位异或操作后,结果为1011,即十进制的11
System.out.println("按位异或的结果是: " + result);
}
}
四、位非运算符(~)
位非运算符~对操作数的每一位进行取反操作。
操作数的每一位1变成0,0变成1。
demo:
public class BitwiseNotOperator {
public static void main(String[] args) {
int a = 12; // a的二进制表示为1100
int result = ~a; // 按位非操作后,结果为0011,由于Java使用补码表示负数,因此结果是-13
System.out.println("按位非的结果是: " + result);
}
}
五、左移运算符(<<)
左移运算符<<将操作数的所有位向左移动指定的位数。
左边的位被移出,右边补0。
demo:
public class LeftShiftOperator {
public static void main(String[] args) {
int a = 12; // a的二进制表示为1100
int result = a << 2; // 左移两位后,结果为110000,即十进制的48
System.out.println("左移操作的结果是: " + result);
}
}
六、三目运算符
三目运算符是Java中的一个条件运算符
它基于一个条件表达式的结果来选择两个值中的一个。
它的格式如下:
condition ? valueIfTrue : valueIfFalse
如果condition为true,则表达式的结果是valueIfTrue;
如果condition为false,则结果是valueIfFalse。
demo:
public class TernaryOperator {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 使用三目运算符来判断a和b的大小,并赋值给max
int max = (a > b) ? a : b; // 如果a大于b,则max等于a,否则等于b
System.out.println("最大的值是: " + max);
}
}
分析demo:
在这个例子中,我们比较了变量a和b的值,并使用三目运算符来找出最大的值。如果a大于b,则max被赋值为a,否则被赋值为b。运行这段代码将输出最大的值是: 20,因为在这个例子中b的值更大。
以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~