观察十进制数可以看出,10就是10^1,100就是10^2,由于二进制是逢二进一,可以简单的理解为二进制的10就相当于二的一次方,二进制的100就相当于二的二次方,由此可以得到以下代码 public static int getBinary(int a){ int e = 0; if (a%2!=0) { e+=1; --a; } for (int j = 1;a>=1;j++){ a/=2; if (a%2!=0) { e+=Math.pow(10,j); a--; } } return e; }
加上浮点型,用下面的方法即可以转整型又可以转浮点型,不过整型最后的结果会带小数。就像5会转成101.0 。
public static double getBinary(double a){ int b = (int)Math.floor(a); double c = a-b; int d = 0; double e = 0; if (b%2!=0) { d+=1; --b; } for (int j = 1;b>=1;j++){ b/=2; if (b%2!=0) { d+=Math.pow(10,j); b--; } } for (int j = 1;c!=0;j++){ c*=2; if (c>=1) { e+=Math.pow(10,-j); c--; } } return d+e; }