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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ╰繼/aiq戀い 初级黑马   /  2014-6-27 09:55  /  528 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式

1 个回复

倒序浏览
  1. public static void main(String[] args) throws IOException {
  2.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  3.                 char[] chars = new char[1024];
  4.                 //获取键盘输入的字符,存储到字符数组中
  5.                 int len = br.read(chars);
  6.                 //循环字符数组,考虑忽视最后的回车\r\n,所以-2
  7.                 for (int i = 0; i < len-2; i++) {
  8.                         //将字符转型成Ascall码对应的int
  9.                         int t = chars[i]+0;
  10.                         System.out.println("十进制数值:");
  11.                         System.out.println(t);
  12.                         StringBuffer result = new StringBuffer();
  13.                         //十进制转换成二进制
  14.                         while(t>0){
  15.                                 result.insert(0, t%2);
  16.                                 t = t/2;
  17.                         }
  18.                         System.out.println("二进制数值:");
  19.                         System.out.println(result.toString());
  20.                 }
  21.                
  22.         }
复制代码

异常情况不太清楚,等大侠解决了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马