A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丹霞似锦 中级黑马   /  2016-7-29 00:23  /  542 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。

要求:
要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。
10转2进制,就是对于该数字/2%2的过程

大神们帮看看这这个题,拜托拜托

1 个回复

倒序浏览
public class Test2 {
        public static void main(String[] args) {
                Scanner scanner = new Scanner(System.in);
                Test2 test = new Test2();
                while(true){
                        System.out.println("请输入要装换的(输入end退出程序):");
                        //获取输入的一整行数据,也可以使用next().next()方法是获取到enter或者空格就结束获取
                        String input = scanner.nextLine();
                        //输入end退出,不区分大小写
                        if(input.equalsIgnoreCase("end")){
                                System.out.println("程序结束!");
                                System.exit(0);
                        }else{
                                try{
                                        int inputNum = Integer.valueOf(input);
                                        String erjinzhi = test.returnErJinZhi(inputNum);
                                        System.out.println(inputNum+"转换成二进制为:\r\n"+erjinzhi);
                                }catch(Exception e){
                                        System.out.println("输入有误,含有非数字字符!");
                                }
                        }
                }
        }
        //转换的方法
        public String returnErJinZhi(int n){
                //创建StringBuffer对象
                StringBuffer sb = new StringBuffer();
                //如果是0,直接返回
                if(n == 0){
                        return String.valueOf(0);
                }
                //如果不是0,一直对n取余,知道为0
                while(n != 0){
                        //取余追加到对象中
                        sb.append(String.valueOf(n%2));
                        //取整赋值给n
                        n = n / 2;
                }
                //因为sb对象中追加的是反向的二进制,所以对其倒序后返回
                sb.reverse();
                return sb.toString();
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马