两个放的思想都是每次将最低位拿出,只是对最低位的处理上不同
第一个 将每一位组合成十进制的数,顺序就是正整数二进制的顺序。
第二个 将每一个最低位变为字符进行拼接,会导致高位变为低位,所以最后进行一个字符串的逆转,即可得到结果。
看代码:
public class Test {
/**
* 输出正整数字符串 输出二进制字符串
* @param line
* @return
*/
public static String toBinaryString(String line) {
Integer value = Integer.valueOf(line);
int result=0,i=1;
while(value!=0) {
//取出最低位
int low = value&1;
//将高位仍放在高位
result = low*i+result;
//右移一位
value = value>>1;
i=i*10;
}
return String.valueOf(result);
}
/**
* 输出正整数字符串 输出二进制字符串
* @param line
* @return
*/
public static String toBinaryString(String line) {
Integer value = Integer.valueOf(line);
String result="";
while(value!=0) {
//取出最低位
int low = value&1;
//将字符串拼接
result+=String.valueOf(low);
//右移一位
value = value>>1;
}
//反转结果
return new StringBuilder(result).reverse().toString();
}
}