JAVA位运算符示例详解:与、或、异或、非、左移、右移、无符号右移

JAVA位运算符示例详解:与&、或|、异或^、非~、左移<<、右移>>、无符号右移>>>

  • 对比表
  • 异或
  • 左移
  • 右移
  • 无符号右移

对比表

位运算符用于整型操作数与结果数,基于其二进制编码进行运算
位运算符 基于二进制编码的运算方式
& 二进制位逐位进行与&运算,仅1&1结果位1,其余为0
| 二进制位逐位进行或|运算,仅0|0结果为0,其余为1
^ 二进制位逐位进行异或^运算
~ 各二进制码按补码位逐位取反(~只有右侧一个操作数)
<< 将左侧操作数的二进制码 左移 右侧操作数数值个(表示几个)位数,高位丢弃,空位补0
>> 将左侧操作数的二进制码 右移 右侧操作数数值个(表示几个)位数,低位丢弃,高位原先是1补1,原先是0补0
>>> 将左侧操作数的二进制码 右移 右侧操作数数值个(表示几个)位数,低位丢弃,高位永远补0

class BitAnd{
	// 位运算符操作整型数据
	// 与
	public static void main(String[] args){
		int a = 12int b = 5;
		System.out.println("a & b :" + (a & b));	
	}	
}
// 输出:a & b :4

class BitOr{
	// 位运算符操作整型数据
	// 或
	public static void main(String[] args){
		int a = 12int b = 5;
		System.out.println("a | b :" + (a | b));	
	}	
}
// 输出:a | b :13

异或

class BitXor{
	// 位运算符操作整型数据
	// 异或
	public static void main(String[] args){
		int a = 12int b = 5;
		System.out.println("a ^ b :" + (a ^ b));	
	}	
}
// 输出:a ^ b :9

class BitNot{
	// 位运算符操作整型数据
	// 非
	public static void main(String[] args){
		int a = 12int b = 5;
		System.out.println(" ~a :" + (~a));	
	}	
}
// 输出:~ a:-13

左移

class BitMove{
	//位运算符操作整型数据
	// << 在一定范围内,每左移1位,相当于*2
	public static void main(String[] args){
		int i = 88;
		int j;
		j = i << 2;
		System.out.println("i << 2 = " + j);
	}	
}
// 输出:i << 2 = 352

右移

class BitMove{
	//位运算符操作整型数据
	// >> 在一定范围内,每右移1位,相当于/2
	public static void main(String[] args){
		int i = 88;
		int j;
		j = i >> 2;
		System.out.println("i >> 2 = " + j);
	}	
}
// 输出:i >> 2 = 22

无符号右移

class BitMove{
	//位运算符操作整型数据
	// >>> 正数在一定范围内,每右移1位,相当于/2
	public static void main(String[] args){
		int i = 88;
		int j;
		j = i >>> 2;
		System.out.println("i >>> 2 = " + j);
	}	
}
// 输出:i >>> 2 = 22


class BitMove{
	//位运算符操作整型数据
	// >>> 负数无实际意义
	public static void main(String[] args){
		int i = -88;
		int j;
		j = i >>> 2;
		System.out.println("i >>> 2 = " + j);
	}	
}
// 输出:i >>> 2 = 1073741802

你可能感兴趣的:(初识Java[一些知识点整理])