原题是将一个十进制整数转换成二进制输出。
分析:任何数可以表达为: n = (n / div )* div + n % div
这使用了Java中2个整数相除,结果仍是整数的特点。最先得到的余数是低位的,然后位数逐渐增加,直到n/div等于0为止,这里的div是2。代码实现如下:
import java.util.Scanner;
import java.util.Stack;
public class IntDecimal2Binary {
/** Decimal integer -> binary integer
* 0 < decimal <= Integer.MAX_VALUE
* @param decimal integer
* @return binary integer
*/
public static String getBinary(int decimal) {
Stack<String> stack = new Stack<String>();
while (decimal != 0) {
stack.push(String.valueOf(decimal % 2));
decimal /= 2;
}
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
return sb.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
while (true) {
System.out.print("Input an Decimal Integer range (0, 2147483647]: ");
Scanner scanner = new Scanner(System.in);
int dec = 0;
try {
dec = scanner.nextInt();
} catch (Exception e) {
System.out.println("-> Cannot understand or out of range!");
}
if (dec > 0){
System.out.println("-> Binary: " + getBinary(dec));
} else {
System.out.println("-> Out of range!");
}
}
}
}
分享到:
相关推荐
在计算机科学中,将一个十进制整数转换为其他任意进制(如二进制、八进制、十六进制或介于二至九之间的任何其他进制)是常见的编程任务。这种转换通常用于数据表示、计算以及理解计算机内部工作原理。下面我们将详细...
设计算法把一个十进制整数转换为二到九进制之间的任意进制数输出(链式栈)
设计算法把一个十进制整数转换为二至九进制之间的任意进制数输出
将一个非负十进制整数转化为八进制的基本步骤如下: 1. **取余**:将十进制数除以8,并记录余数。 2. **商继续处理**:将得到的商作为新的被除数,重复执行第一步,直到商为0。 3. **逆序输出余数**:最后,将所有...
设计算法把一个十进制整数转换为二至九进制之间的任意进制输出(C++描述)原题来自张宪超版数据结构2章12题
在编程领域,将十进制整数转换为二进制数是一项常见的任务,尤其是在低级系统编程或理解计算机内部工作原理时。在C语言中,我们可以利用一系列基本操作来实现这个转换过程。以下是一个详细的知识点说明: 1. **基础...
当一个数同时包含整数和小数部分时,我们将它们分别转换后合并。例如,30.6875的二进制表示是11110.1011,而156.6875的二进制表示是10011100.1011。 **总结** 二进制和十进制之间的转换是通过特定的算法完成的。...
这篇博文“Stack练习:十进制正整数转化成二进制”聚焦于将十进制数转换为二进制数的过程,这对于理解计算机内部运作机制至关重要,因为计算机是以二进制(0和1)为基础进行数据处理的。在本文中,作者分享了一种...
4. 可能会有一个映射表,用于将超过9的十六进制数字(如A、B、C、D、E、F)转换为对应的十进制值。 5. 最后,显示转换结果。 在软件工程中,这样的小工具可以帮助开发者快速验证数值转换,尤其是在处理二进制和十六...
要将一个十进制数N转换为B进制数,可以采用除B取余的方法: 1. 将十进制数N除以目标进制B,并获取余数。 2. 将余数压入栈中。 3. 将N除以B的结果作为新的N继续执行上述操作,直到N为0。 4. 依次弹出栈中的元素即得到...
本文档讲述了高级语言程序设计中的十六进制整数向其他进制整数转换的算法实现,涵盖了十六进制整数向二进制、八进制、十进制整数转换的实现过程。 一、题目要求 高级语言程序设计课程设计的题目是十六进制整数向...
数据结构,递归实现十进制数转二进制数,C++实现,可多次输入数
"二进制八进制十进制十六进制之间的转换算法" 本文主要讲解了二进制、八进制、十进制、十六进制之间的转换算法。包括十进制与二进制之间的转换、八进制与二进制之间的转换、十六进制与二进制之间的转换等。 十进制...
十进制数转二进制数、八进制数、十六进制数的方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。 例如,要将 16 转换成二进制数,可以...
在这个题目中,我们需要将一个十进制的正整数转换为另一个d进制数,其中d的范围是2到9。 ### 2. C语言基础知识 #### 2.1 变量声明与初始化 在C语言中,变量需要先声明后使用。例如: ```c int i = 0, N, d; ``` ...
本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向二进制、八进制以及十六进制的转换。通过分析给出的代码示例,我们将深入了解其工作原理,并探讨每一步操作的具体实现细节。 #### 二、基础知识 在...
对于任意一个m位的十进制整数\( D = d_{m-1}d_{m-2}...d_1d_0 \),可以表示为: \[ D = d_{m-1} \cdot 10^{m-1} + d_{m-2} \cdot 10^{m-2} + ... + d_1 \cdot 10 + d_0 \] 为了从\( H \)转换到\( D \),文章提出了...
本篇文章介绍了一个利用顺序栈来实现非负十进制整数转换为其他进制数的程序。该程序使用C++编写,并能够支持1至16进制之间的转换。 #### 程序功能详解 1. **定义栈结构体**:首先定义了一个名为`Stack`的结构体,...
本文旨在通过一个具体的C语言程序实例来解释如何将一个十进制整数转换为其对应的二进制表示。 #### 程序代码解析 下面是一段C语言代码,用于将用户输入的十进制整数转换为二进制,并输出结果: ```c #include //...
有时我们需要将十进制数转换成其他进制,比如八进制、十六进制或者任意进制r。本篇将详细讲解如何用Java编程语言实现将十进制数N转换为任意进制r的数,并以N=3456,r=8为例进行具体阐述。 首先,让我们理解辗转相除...