1:/*
* 2.编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,
* 然后打印出这个十进制整数对应的二进制形式。
* 这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,
* 并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。
* 提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,
* 接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,
* 直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式
* (不断除以10,得到的余数就分别是个位,十位,百位),
* 就很容易理解十进制数转二进制数的这种方式。
*/
实现代码:
public class NumberOperate {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String s = br.readLine();
long number = numberFormat(s);
System.out.println(getNumberBinary(number));
} catch (IOException e) {
e.printStackTrace();
}
}
//把整数转换成二进制数据后转成字符串输出
public static String getNumberBinary(long number) {
StringBuffer sb = new StringBuffer();
if(number == 0) {
return "0";
}
while(number!=0) {
sb.append(number%2);
number = number/2;
}
return sb.reverse().toString();
}
//把输入的字符串转成整数
public static long numberFormat(String s) {
long number = 0;
try {
number = Long.parseLong(s);
} catch (NumberFormatException e) {
if(s.matches("[//d]+")) {
System.out.println("对不起你输入的数字:" + s + "太大不能转换成整数");
}else {
System.out.println("对不起," + s + "无法转换成整数");
}
}
return number;
}
}