二进制跟十进制进行转换
二进制和十进制进行转换
package com.lizhihui.cn; /** * 十进制数据和二进制进行转换 * @author 李智慧 * @date Mar 24, 2012 * @company 广东南航易网通电子商务有限公司 */ public class TransLate { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String rString = "1101011101"; int n = getSJZ(rString); System.out.println(rString+"得到的十进制数值是:"+n); String result = getEJZ(n); System.out.println(n+"得到的二进制数值是:"+result); } /** * 从二进制获取十进制值 * @param string * @return */ private static int getSJZ(String string){ int z = 0; char[] c = string.toCharArray(); for(int j = 0;j < c.length; j ++){ int q = Integer.parseInt(c[j]+""); z += q*getCF(c.length-1-j); } return z; } /** * 从十进制获取二进制数值 * @param z * @return */ private static String getEJZ(int z){ String result = ""; int num; int ys; int len; if(z < 2){ result = z +""; }else { while(true){ ys = z % 2; len = z; z = z / 2; if(z == 1){ if(len == 3){ result = 11 + result; }else if(len == 2){ result = 10 + result; } break; }else { result = ys + result; } } } return result; } /** * 2的n次方值 * @return */ public static int getCF(int n){ int result = 0; if(n == 0){ result = 1; }else { result = getCF(n-1)*2; } return result; } }