编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并
对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除
数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),
就很容易理解十进制数转二进制数的这种方式。
/**思路:
*要得到十进制数的二进制表现,算法必须要知道
*然后要注意编码习惯:即要讨论数值情况
*/
class Program
{ public static void main(String[] args){
//利用scanner封装键盘
Scanner scanner = new Scanner(System.in);
String str = "";
int i ;
//接收键盘输入
str = scanner.nextLine();
//讨论
if(isNumber(str)){
i = Integer.parseInt(str);
}else {
System.out.println("您输入的不正确,请重新输入");
}
String rezult = toBinary(i);
scanner.close();
}
public String toBinary(int i) {
//获取一个Stringbuilder
StringBuilder sb = new StringBuilder();
//运用while循环来算
while( i == 0 ){
int a = i % 2;
int i = i / 2;
sb.append(a);
}
sb.reverse();
return sb.toString();
}
}
|
|