我想做一个java程序,用户输入一个十进制数,然后它转换成二进制。这是我到目前为止所拥有的,但是当我输入8时,虽然循环只循环一次,只给我0。我知道二进制中的8是1000,所以我不明白我做错了什么。我需要代码变得简单。请帮忙谢谢
import java.util.Scanner;
public class binary
{
public static void main (String [] args)
{
Scanner scan = new Scanner(System.in);
int userNum = 0;
int binary = 0;
double newNum = 0;
int count = 0;
System.out.print("Enter a positive base 10 number: ");
userNum = scan.nextInt();
System.out.println();
for(; (Math.pow(2,count) <= userNum); count++)
{
}
while(!(count == 0))
{
if(userNum/Math.pow(2,count) != 0)
{
binary = userNum/(int)Math.pow(2,count);
System.out.print(binary);
}
userNum %= Math.pow(2,count);
count--;
userNum %= (int)Math.pow(2,count));
}
}
}
你刚刚得到:
for(userNum = userNum; (Math.pow(2,count) <= userNum); count++)
{
}
而不是:
for(userNum = userNum; (Math.pow(2,count) <= userNum); count++){
while(!(count == 0))
{
if(userNum/Math.pow(2,count) != 0)
{
binary = userNum/(int)Math.pow(2,count);
System.out.print(binary);
}
newNum = userNum%Math.pow(2,count);
count--;
userNum = (int)(newNum%(int)Math.pow(2,count));
}}
}
}
基本上你是空的,如果。
您可以使用如下逻辑:
package com.java2novice.algos;
public class DecimalToBinary {
public void printBinaryFormat(int number){
int binary[] = new int[25];
int index = 0;
while(number > 0){
binary[index++] = number%2;
number = number/2;
}
for(int i = index-1;i >= 0;i--){
System.out.print(binary[i]);
}
}
public static void main(String a[]){
DecimalToBinary dtb = new DecimalToBinary();
dtb.printBinaryFormat(25);
}
}
你不应该重新发明轮子,使用Integer。toBinaryString(int)
以及类似的内容,
Scanner scan = new Scanner(System.in);
System.out.print("Enter a positive base 10 number: ");
if (scan.hasNextInt()) {
int userNum = scan.nextInt();
System.out.printf("%d decimal is %s binary%n", userNum,
Integer.toBinaryString(userNum));
}
此外,Java类应该以大写字母开头。所以您的二进制
应该是二进制
。最后,如果需要从二进制转换为十进制,可以使用Integer。parseInt(字符串,2)
。
我可以运行这个程序,但由于某些原因,它会显示/放置随机字符,而不是二进制的初始值,而且我似乎无法将程序从十进制运行回二进制。我该如何改进这些代码。要明确说明它不会将二进制转换为十进制,我将如何将其转换回十进制转换为二进制,如果有一些代码可以帮助我,将不胜感激。
本文向大家介绍Java 程序实现八进制转换为二进制,十进制,十六进制,包括了Java 程序实现八进制转换为二进制,十进制,十六进制的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个八进制数字。要将八进制转换为其他进制,例如二进制,十六进制等,Java代码如下: 示例 输出结果 一个名为Demo的类包含一个名为“base_convert”的函数。此函数将整数从源基解析为目标基,将其转换为字符串
本文向大家介绍十进制到二进制转换,包括了十进制到二进制转换的使用技巧和注意事项,需要的朋友参考一下 十进制数字也可以转换为二进制格式。要将十进制数转换为二进制数,我们需要将数字除以2,直到达到0或1。然后,在每一步骤中,其余部分将分开存储以形成相反的二进制等效数。 在此算法中,我们将遵循递归方法。这将帮助我们在不使用堆栈数据结构的情况下解决问题。在实现中,我们知道函数的递归将遵循内部堆栈。我们将使
Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec
主要内容:二进制,八进制,十六进制我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。 例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。 因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做 十进制(Decimalism)。十进