论坛首页 入门技术论坛

Java位运算

浏览 1746 次
锁定老帖子 主题:Java位运算
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-20  
OO

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  - -------------------------------

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics