今天做题碰上一道其中需要十进制与二进制之间的转换的问题。然后翻阅资料得知,在java中的integer类中就有一个方法可以实现这个操作,这个方法的名字是toBinaryString(),返回值类型是字符串。但是为了学好java,不仅仅要知道有这么一种方法,更重要的是要知道怎么实现这种方法。
首先需要弄明白十进制转化为二进制的数学方法,就是把十进制的原始数连续除以二取余数,然后得到的余数从下到上组合起来就是该数的二进制表示。其实这也不难理解。首先,最后一个余数肯定是这个数能除掉的最大的二的次幂,那么这个“1”的位数确定了,然后再往后随着2的次幂的减少,数位的值从左至右也就确定了。
这样就可以实现十进制到二进制之间的转换了。
private String toBinaryString(int i){
String result="";
while(i>1){
int j=i%2;
i=i/2;
result=j+result;
}
result=i+result;//最后的商也要算进来
return result;
}