Java位运算

Java位运算

  最近看Lucene源代码,发现都是用二进制写文件的,涉及到很多位运算的基础知识,于是恶补一下。

  

private Log log = LogFactory.getLog(TestBitCalculate.class);
	DecimalFormat df = new DecimalFormat("00000000,00000000");
	public void testBitCalculate(){
		Integer i = 5;
		Integer j = 3;
		operate("&", i, j);
		operate("|",i,j);
		operate("^",i,j);
	}
	
	@SuppressWarnings("unused")
	private void operate(String operate,Integer i,Integer j){
		Integer result = 0;
		log.info("-------------------------------");
		log.info(operate + "运算 " + "两个数分别是:" + i + "," + j);
		outPutByBinary(i);
		outPutByBinary(j);
		if(operate.equals("&")){
		   result = i & j;
		}else if(operate.equals("|")){
		   result = i | j;
		}else if(operate.equals("^")){
		   result = i ^ j;
		}
		log.info(result);
		outPutByBinary(result);
		log.info("-------------------------------");
	}
	
	private void outPutByBinary(Integer i){
		log.info(i + "的二进制为:" + df.format(Integer.valueOf(Integer.toBinaryString(i))));
	}

 

程序运行后控制台输出为:

 0    [main] INFO  com.develop.bit.TestBitCalculate  - -------------------------------
0    [main] INFO  com.develop.bit.TestBitCalculate  - &运算 两个数分别是:5,3
0    [main] INFO  com.develop.bit.TestBitCalculate  - 5的二进制为:00000000,00000101
0    [main] INFO  com.develop.bit.TestBitCalculate  - 3的二进制为:00000000,00000011
0    [main] INFO  com.develop.bit.TestBitCalculate  - 1
0    [main] INFO  com.develop.bit.TestBitCalculate  - 1的二进制为:00000000,00000001
15   [main] INFO  com.develop.bit.TestBitCalculate  - -------------------------------
15   [main] INFO  com.develop.bit.TestBitCalculate  - -------------------------------
15   [main] INFO  com.develop.bit.TestBitCalculate  - |运算 两个数分别是:5,3
15   [main] INFO  com.develop.bit.TestBitCalculate  - 5的二进制为:00000000,00000101
15   [main] INFO  com.develop.bit.TestBitCalculate  - 3的二进制为:00000000,00000011
15   [main] INFO  com.develop.bit.TestBitCalculate  - 7
15   [main] INFO  com.develop.bit.TestBitCalculate  - 7的二进制为:00000000,00000111
15   [main] INFO  com.develop.bit.TestBitCalculate  - -------------------------------
15   [main] INFO  com.develop.bit.TestBitCalculate  - -------------------------------
15   [main] INFO  com.develop.bit.TestBitCalculate  - ^运算 两个数分别是:5,3
15   [main] INFO  com.develop.bit.TestBitCalculate  - 5的二进制为:00000000,00000101
15   [main] INFO  com.develop.bit.TestBitCalculate  - 3的二进制为:00000000,00000011
15   [main] INFO  com.develop.bit.TestBitCalculate  - 6
15   [main] INFO  com.develop.bit.TestBitCalculate  - 6的二进制为:00000000,00000110
15   [main] INFO  com.develop.bit.TestBitCalculate  - -------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值