/*

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

* 这个程序要考虑输入的字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分出是数字太大,

* 还是其中包含有非数字字符的情况。

* 提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,

* 这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位的方式

*(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。

*/

/*

* 这道题的解题思路事实上题目已经讲了,在此基础上我特化一下我的思路:首先定义一个字符数组,把0到9的十个数字

* 当做字符存储在里面,从命令行读取一行字符串,用charAt()函数把命令行字符串的每一个字符取出来,与十个十进制

* 数进行比较,若与其中的任意一个相等则break退出测试下一个字符,直到字符串的末尾,即args[0].length()长度,

* 这里一定要注意不是args.length,args.length表示args数组的长度。当发现有字符不是数字的话则退出并打印“里面

* 里面有非数字字符”,若整个字符串的每一个字符都是0到1十个数字中的一个的话,接着转换为double类型,并判断是不是

* 超出了int类型整数所能表示的范围,若超出了则打印“数字过大,不能转换为int类型整数”,若每超出的话则把字符串

* 转换为int类型整数,然后进行二进制转换,转换之后打印出来。 这里注意,在二进制转换的时候我用到了BufferedBuild,

* 首先用转换的int整数除以2所得余数用append函数添加到BufferedBuild里面,然后把所得商作为被除数,2继续作为除数

* 求余,余数继续放在BufferedBuild的后面,如此循环,直到被除数为0。循环完之后,调用reverse函数将BufferedBuild

* 里面的字符串进行反转,打印出来,所得结果即为相应的二进制数

*/

package com.itcast.exercise;

public class ReverseToBinary {

public static void main(String[] args) {

char c;

int i,j,num,b;

StringBuilder sb = new StringBuilder();

char[] data = new char[]{'0','1','2','3','4','5','6','7','8','9'};

/*

* 注意:这里是i<args[0].length(),而非i<args.length,我就因为一开始把这里写成了i<args.length

* 结果折腾了半天运行结果就是不对,后来仔细查看才发现这里出了问题,哎,程序员一定要细心啊

* 下面的第一个循环用来检测字符串里面有没有非数字字符

*/

for(i=0;i<args[0].length();i++) {

c = args[0].charAt(i);

for(j=0;j<data.length;j++) {

if(c==data[j]) {

break;

}

}

if(j>=data.length) {

System.out.println(args[0]+"中含有非数字字符");

return;

}

}

double doub = Double.parseDouble(args[0]);//首先转换为double类型,因为double类型表示的范围比较大

if(doub>Integer.MAX_VALUE) {//进行比较看是不是超出了int类型的范围

System.out.println("数字过大,不能装换为int类型整数");

}else{

num = Integer.parseInt(args[0]);

while(num>0) {//求二进制数

b = num%2;

sb.append(b);

num = num/2;

}

System.out.println(sb.reverse());

}

//String s = "121.456";

//System.out.println(s.length());

//因为上面循环我写成了i<args.length,导致运行异常,这里我进行了测试,受到启发发现了原因

}

}

“中关村黑马程序员训练营”练习题(二)相关推荐

  1. 中关村“黑马程序员”训练营

    http://edu.csdn.net/heima/dotnetDyhGkk.html?from=webim0423 附带3篇:http://www.blogjava.net/java2java ht ...

  2. 黑马程序员训练营十道满分题解

    黑马程序员训练营基础测试题十道 代码下载见GitHubs:https://github.com/fairyxingyun/Itheima_exam_10_answer 1. 编写一个函数,函数内输出一 ...

  3. 飞鸽传书官方网站 创立黑马程序员训练营

    张孝祥于2001年创办锐信科技有限公司,2005年创办传智播客科技有限公司,飞鸽传书官方网站 创立黑马程序员训练营,一直致力于陶瓷的飞鸽传书软件开发教育事业,张孝祥老师善于解剖和分析问题,善于使用生动 ...

  4. 黑马程序员-黑马程序员训练营基础测试

    ---------------------- ASP.Net+Unity开发. .Net培训.期待与您交流! ---------------------- 为了帮助更多的人了解黑马,让更多想知道黑马测 ...

  5. 黑马程序员C++实战(二)——基于多态的职工管理系统完整代码

    本文转载自:https://github.com/AnkerLeng/Cpp-0-1-Resource.git 视频见:https://www.bilibili.com/video/av4155972 ...

  6. 黑马程序员—2014毕业生薪资调查报告——半年报

    文章来源:黑马程序员,黑马论坛. <2014毕业生薪资调查报告--半年报> 前言:2014年,被冠以"最难就业季",727万大学毕业生即将离开校园走上自己的职业发展道路 ...

  7. 想进入黑马程序员——传智播客学习

    前些天突然有感自己即将毕业了,小小的感触了一番.反思反思自己这几年大学的所作所为,确实学到的东西太少了,本来是学计算机网络方面的,现在都偏离了本行,搞起了软件方面,可是软件方面的基础也不扎实,面临的各 ...

  8. “黑马程序员”宣传语有奖大征集《参赛作品》

    我的作品:"带上梦想,准备好挑战.黑马,只为让你赢在终点." 作品阐述:"中关村黑马程序员训练营"是中关村软件园.CSDN,并委托传智播客进行教学实施的软件开发 ...

  9. 黑马程序员_基础测试

    -------android培训.java培训.期待与您交流! ---------- 黑马程序员训练营基础测试题及个人代码(包含思路.步骤和基本注释) 1. 编写程序计算12+22+32+....+1 ...

最新文章

  1. 25 iOS performance TipsTricks 笔记
  2. 零基础学Python(第十四章 字典)
  3. 仿IOS应用APP下载页源码
  4. 清翔电子单片机原理图stc89c52_1000. 电子编程入门到工程师--从看得到开始
  5. xcode免证书真机调试iphone(ipad)程序的具体方法(总结贴)转贴)
  6. 从解放劳动力来看未来的科技进程
  7. python获取列表控件_PyQt学习随笔:ListView控件获取当前选择项的方法
  8. centos系统上实现微信语音amr格式,qq语音slk格式转mp3
  9. 微软智能云Azure在华新增数据中心区域正式启用
  10. 分子排列不同会导致_高分子物理-中国大学mooc-题库零氪
  11. 基于JavaEE的山水房屋中介管理系统_JSP网站设计_SqlServer数据库设计
  12. SQL server 删除注册表
  13. Qt基于networkmanager嵌入式linux的wifi网络连接
  14. vue3+vite assets动态引入图片的几种方式,解决打包后图片路径错误不显示的问题
  15. wkhtmltopdf 照片不显示的问题
  16. 《计算传播学导论》读书笔记:第二章 文本分析简介
  17. 谈谈制造企业如何制定敏捷的数字化转型策略
  18. Swift 第三方库整理
  19. 小工具:用C++读取TGA并输出数据到文本
  20. oracle opaque_transform,使用dblink导致的/*+ OPAQUE_TRANSFORM */

热门文章

  1. 50、诗句按照特定个数输出
  2. 每天干的啥?(2018.09)
  3. JavaScript Array --map()、filter()、reduce()、forEach()函数的使用
  4. 微信业务域名两个解决方法
  5. 阿里巴巴心石:面向5G优酷正在做三件事
  6. 小红书爆款笔记分析,新账号如何快速打造爆款文章
  7. EasyExcel报错com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError
  8. PayPal收款后的注意事项(PAYPAL用户必看)
  9. 【Java基础语法】安排,写的太好了
  10. 软件自动更新功能的实现