黑马程序员技术交流社区
标题:
分享一道笔试题吧
[打印本页]
作者:
眷恋从前的日子
时间:
2015-3-11 23:01
标题:
分享一道笔试题吧
编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,
* 然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,
* 并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,
* 余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。
* 其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。
import java.math.BigInteger;
import java.util.*;
import java.io.*;
import java.util.Scanner;
public class Test9
{
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = null;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串");
str = scanner.next();
String regex = "\\d+";
if(str.matches(regex))
{
try{
int n = Integer.parseInt(str);
}catch(Exception e)
{
System.out.println("数太大");
return;
}
System.out.println(Integer.toBinaryString(Integer.parseInt(str)));
}
else
{
System.out.println("包含非法字符");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2