`

进制转换问题

 
阅读更多

不知道写的对不对,有不对的地方可以向我指出来。

import java.util.Stack;

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

	public static void main(String[] args) {
		String param = "9876543210";
		Integer num = null;
		Stack<Integer> stack = new Stack<Integer>();

		try {
			num = Integer.valueOf(param);
			while (num > 0) {
				int b = num % 2;
				stack.add(b);
				num >>>= 1;// 无符号右移1位,相当于num = num / 2;只不过效率更高
			}
			toBinaryString(stack);
			// 也可以转为Integer之后,直接用Integer.toBinaryString(num)转为2进制,不过这不是题目的本意。
		} catch (Exception e) {
			boolean check = false;
			for (int i = 0; i < param.length(); i++) {
				char c = param.charAt(i);
				if (c < 48 || c > 57) {
					check = true;
					break;
				}
			}

			if (check) {
				System.out.println("存在非数字字符。");
			} else {
				System.out.println("数字太大。");
			}
		}
	}

	public static void toBinaryString(Stack<Integer> stack) {
		StringBuilder sb = new StringBuilder();
		while (!stack.empty()) {
			sb.append(stack.pop());
		}
		System.out.println(sb.toString());
	}
}
0
5
分享到:
评论

相关推荐

    计算机各种进制转换练习题(附答案).pdf

    21. 进制转换问题: - 题目未给出完整信息,无法提供答案。 以上就是进制转换的相关知识点,包括了二进制、八进制、十进制和十六进制之间的转换方法、运算规则以及数值比较等内容。通过理解和掌握这些知识点,可以...

    唯美计算器(解决windows计算器小数进制转换问题)

    唯美计算器是一款专为解决Windows操作系统自带计算器在处理小数进制转换时的局限性而设计的应用软件。在大学计算机基础课程中,数制转换是一项重要的学习内容,涉及到二进制、八进制、十进制和十六进制之间的转换。...

    进制转换C源码

    在C语言中实现进制转换时,我们还需要注意处理边界条件、溢出问题以及数据类型的选择。例如,使用`long long`类型可以处理大整数,但可能导致性能下降。此外,字符串处理也是进制转换中常见的部分,如处理前导零、...

    C#进制转换工具.zip

    通过学习和理解这些示例,开发者可以提升在实际项目中处理进制转换问题的能力。 总结起来,C#中的进制转换涉及了`Convert`类、`int.Parse/TryParse`、`ToString`、`BitConverter`以及位运算符等多种工具和方法。...

    易语言进制转换模块

    通过研究和实践这个模块,开发者不仅可以掌握易语言的基础知识,还能提升在处理进制转换问题上的能力,这对任何涉及数据处理的项目都具有实际价值。同时,源码学习也是提高编程技能的重要途径,可以增强对编程逻辑和...

    辅助软件 进制转换V2.1

    辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 进制转换V2.1辅助软件 ...

    任意进制转换工具.rar

    在IT领域,进制转换是一项基础且重要的技能,尤其对于编程和数据分析来说更是不可或缺。...无论你是编程新手还是经验丰富的开发者,掌握并熟练使用这种工具都能使你在面对各种进制转换问题时更加游刃有余。

    基于单片机(AT89C51)的进制转换及进制计算器.rar

    综上所述,"基于单片机(AT89C51)的进制转换及进制计算器"项目涵盖了单片机原理、进制转换算法、程序设计、硬件接口设计等多个方面的知识。通过这个项目,开发者不仅可以提升单片机编程技能,还能深入理解进制转换的...

    JAVA中的进制转换

    总的来说,Java中的进制转换是通过内置的API和数学逻辑实现的,理解这些原理可以帮助我们更好地处理各种进制转换问题,从而提升编程的效率和质量。在实际项目中,合理运用这些知识能有效解决各种与进制相关的挑战。

    十进制转换十二进制.cpp

    该资源主要解决进制转换问题 十进制转换十二进制

    西门子TIA博途进制转换功能.pdf

    文档提供的其他链接和信息资源可能是关于如何使用进制转换功能的额外指南或者是用于进一步学习和问题解决的支持页面。例如,“***”可能指向了西门子官方网站上的下载中心,其中可以找到相关的软件包、功能包或者是...

    对数字进行各种进制转换的flash小程序

    总的来说,这个“对数字进行各种进制转换的flash小程序”为学习和实践进制转换提供了一个直观的平台,对于计算机科学初学者和需要处理进制转换问题的人来说非常实用。通过反复操作,用户可以加深对不同进制理解,并...

    易语言模块完全进制转换.rar

    《易语言模块完全进制转换》 易语言作为一款国内自主研发的编程语言,以其独特的“易”学特性,深受广大编程初学者和爱好者喜爱。在编程过程中,进制转换是一项基础且重要的技能,无论是十进制、二进制、八进制还是...

    c语言的进制转换问题

    进制转换其实很简单,只要掌握一定的方法,可以让你轻松解决。

    进制转换_C#_进制转换_

    在编程领域,进制转换是一项基础且重要的技能。在C#这种高级编程语言中,进行进制转换可以方便地处理二进制、八进制、十进制和十六进制等不同数字系统之间的数据交互。本项目是一个专门针对进制转换的小程序,旨在...

    进制转换练习题及答案39资料.pdf

    "进制转换练习题及答案39资料.pdf" 本文档提供了39道进制转换练习题及答案,涵盖二进制、十进制、十六进制之间的转换,ASCII 码、汉字国标码、商品条形码等标准化编码的知识点。通过这些练习题,可以帮助学生和从业...

    微机原理进制转换程序设计

    "微机原理进制转换程序设计" 本资源摘要信息是关于微机原理中进制转换程序设计的知识点总结。进制转换是计算机科学中一个非常重要的概念,涉及到不同数制之间的转换,如二进制、十进制、十六进制等。 1. 需求说明 ...

Global site tag (gtag.js) - Google Analytics