前言:
a&b 与 两个都是1才是1,否则是0;
a|b 或 两个都是0才是0,否则是1;
a^b 异或 两个不全是1就是1,否则是0;
~a 非 不是a;
一言不合就贴代码:
public class BitOperate {
public static void main(String args[]) {
byte ten = 10;
byte fifteen = 15;
System.out.println("ten ---- >" + Integer.toBinaryString(ten));//ten ---- >1010
System.out.println("fiveteen ---- >" + Integer.toBinaryString(fifteen));//fiveteen ---- >1111
System.out.println("& 与 ---- >" + Integer.toBinaryString(ten & fifteen));//& 与 ---- >1010
//两个不全是1 就是1
System.out.println("^ 异或 ---- >" + Integer.toBinaryString(ten ^ fifteen)); //^ 异或 ---- >101
System.out.println("| 或 ---- >" + Integer.toBinaryString(ten | fifteen));//| 或 ---- >1111
//Integer.toBinaryString会把byte char等转成Integer大小。
System.out.println("~ 非 ---- >" + Integer.toBinaryString(~fifteen));//~ 非 ---- >11111111111111111111111111110000
//运算并且赋值
System.out.println("&= ---- >" + Integer.toBinaryString(ten &= fifteen));//&= ---- >1010
System.out.println("^= ---- >" + Integer.toBinaryString(ten ^= fifteen));//^= ---- >101
System.out.println("|= ---- >" + Integer.toBinaryString(ten |= fifteen));//|= ---- >1111
//~是一元运算符所以不能跟=合用。
}
}