Java 位运算符

简介

将数值进行二进制层面上的比较再转换成十进制

种类

  1. ^(and) 转换成二进制,对应两个位置一样变为0,不一样变为1
  2. |(or) 转换成二进制,只要有一个是1,就变成1
  3. &(xor) 转换成二进制,两个位都是1,才变成1,否则变成0
  4. ~(not) 转换成二进制,原先是0的变成1,原先是1的变成0
  5. >> 转换成二进制,向右移动两位,移除的位省去
  6. << 转换成二进制,向左移动两位即后面填充两个零
  7. <<< 转换成二进制,向左移动两位,同时用 0 填充高位,而 << ,用符号填充高位,如果是正数与 << 没有区别,如果是负数,<< 的前两位为 - 占位,而 <<< 则直接用 0 填充。
  8. >>> 没有

实例代码

public class Test {
	public static void main(String[] args) {
		// 1 0001
		// 2 0010
		// 3 0011
		// 4 0100
		// 5 0101
		
		// ^(and)	两个位一样变为0,不一样变为1
//		System.out.println(Integer.toBinaryString(5^3));
//		System.out.println(Integer.toBinaryString(5^4));
		
		// |(or)	只要有一个是1,就变成1
//		System.out.println(Integer.toBinaryString(5|3));
//		System.out.println(Integer.toBinaryString(5|4));
		
		// &(xor)	两个位都是1,才变成1,否则变成0
//		System.out.println(Integer.toBinaryString(5&3));
//		System.out.println(Integer.toBinaryString(5&4));
//		
		// ~(not)	原先是0的变成1,原先是1的变成0
//		System.out.println(Integer.toBinaryString(~3));
//		System.out.println(Integer.toBinaryString(~4));
		
		// <<		向左移动两位即后面填充两个零
//		System.out.println(Integer.toBinaryString(3<<2));
//		System.out.println(Integer.toBinaryString(4<<2));
		
		// >>		向右移动两位,移除的位省去
//		System.out.println(Integer.toBinaryString(3>>2));
//		System.out.println(Integer.toBinaryString(-5>>1));
//		
//		// <<<
//		System.out.println(Integer.toBinaryString(3>>>2));
//		System.out.println(Integer.toBinaryString(-5>>>1));
		
		// 11111111111111111111111111111111
		System.out.println(-3>>2);
		System.out.println(Integer.toBinaryString(-3>>2));
		
		// 00111111111111111111111111111111
		System.out.println(-3>>>2);
		System.out.println(Integer.toBinaryString(-3>>>2));

		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值