位逻辑运算符
运算符 | 含义 | 实例 |
---|---|---|
& | 按位与运算 | 6&3 结果是2 |
| | 按位或运算 | 4|5 结果是5 |
^ | 按位异或运算 | 4^5 结果是1 |
~ | 按位取反运算 | ~10 结果是-11 |
位与运算符
运算方法:将参与计算的数转化成二进制,低位对齐(从右向左对齐),高位不足的补零,只有在对应的二进制都为1时的结果才为1,否则为0。
实例
将十进制21与十进制26进行与运算,21转化二进制为10101,26转化二进制为11010,低位对齐(从右向左对齐),高位不足的补零,对应的二进制都为1的结果为1,否则为零,最终的结果为十进制16,二进制数是10000.
图解
代码引用
public class dome2{
public static void main(String[] args) {
System.out.println(21&26);
}
}
位或运算符
运算方法:参与运算的数转化为二进制数,低位对齐,高位不足的补零,只要在对应的二进制中有一个为1时,则结果都为1,如果对应的二进制都为0,则结果都为零。
实例
将十进制21与十进制26进行位或运算,21转化二进制为10101,26转化二进制为11010,低位对齐(从右向左对齐),高位不足的补零,对应的二进制有一个为1的结果为1,都为零的结果为零,最终的结果为31,二进制数是11111.
图解
代码引用
public class dome2{
public static void main(String[] args) {
System.out.println(21|26);
}
}
位异或运算符
运算方法:参与运算的数转化为二进制数,低位对齐,高位不足的补零,只要在对应的二进制相同时(同时为1或同时为0),则结果都为0,如果对应的二进制不同(有一个为0或者1),结果为1。
实例
将十进制21与十进制26进行位异或运算,21转化二进制为10101,26转化二进制为11010,低位对齐(从右向左对齐),高位不足的补零,对应的二进制相同时(同时为1或同时为0)时,则结果为0,如果对应的二进制不同(有一个不为0或者1),则结果为1,最终的结果为15,二进制数时1111.
代码引用
public class dome2{
public static void main(String[] args) {
System.out.println(21^26);
}
}
位取反运算
运算法则:参与运算的数转化为二进制,只对这个数二进制中的1改为0,0改为1.
实例
将十进制21与十进制26进行位取反运算,21转化二进制为10101,26转化二进制为11010。二进制中的0改为1,1给为0. 21的位取反结果十进制是-22 二进制数是10010110,26去取反结果十进制是-27,二进制数是10011011.
代码引用
public class dome2{
public static void main(String[] args) {
System.out.println(~21);
System.out.println(~26);
}
}