Bootstrap

java -- 将int 转为二进制,再提取二进制中每一位信息

大纲

  • 将int 十进制变为二进制。
  • 将二进制(n进制)字符串变为十进制。
  • 10进制变为3进制(n进制)字符串

前言

  • 用二进制形式,表示事务的处理状态,是一个比较简单的做法,充分考虑了二进制的开关的性质
  • 取二进制某一位: 0 代表未处理,1代表已经进行了处理。
  • 那么 7 转成二进制 111,那么其可以表示事物的3个方面,表示的状态为8个状态。很是节省空间,相对于用一些字符串来表示状态。
  • 但是,数字表示状态,不易让人去理解。


java code:

<pre name="code" class="java">package tree.test.testString;

import java.io.UnsupportedEncodingException;

public class TestIntToBinary {

	public static void main(String[] args) throws UnsupportedEncodingException {
		// TODO Auto-generated method stub
		int data = 7;
		String binaryStr = java.lang.Integer.toBinaryString(data);
		System.out.println("the result is : " + binaryStr);
		byte results[] = binaryStr.getBytes("utf8");
		for(int i = 0;i < results.length ; i++){
			System.out.println("the " + i +  " result is : " + results[i]);//"1"的ascii码是49。
		}
	}
}

 
执行的结果如下: 

the result is : 111

the 0 result is : 49

the 1 result is : 49

the 2 result is : 49

2进制(n进制)到10进制

java将2进制,8进制转化为10进制

String a = "0100";
int d = Integer.parseInt(a, 2); // 2进制
int o = Integer.parseInt(a, 8); // 8进制
System.out.println(d);
System.out.println(o);

10进制变为3进制(n进制)字符串

String threeForm = Integer.toString(5, 3);

结果为:

12

PS:

与之相关的leetcode上的题目:Power of Three 

;