黑马程序员技术交流社区
标题:
各位大神,急求解救!!!
[打印本页]
作者:
丹霞似锦
时间:
2016-7-29 00:23
标题:
各位大神,急求解救!!!
题目:编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。
要求:
要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。
10转2进制,就是对于该数字/2%2的过程
大神们帮看看这这个题,拜托拜托
作者:
1208124957
时间:
2016-7-29 11:31
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();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2