练习题目2

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;
 }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值