【问题标题】:Converting Decimal into binary in java在java中将十进制转换为二进制
【发布时间】:2015-06-02 14:55:30
【问题描述】:

我正在尝试使用 Java 将用户输入的十进制数转换为二进制数,但到目前为止,我遇到了错误,我不知道为什么。我究竟做错了什么?不要介意命名,最终我想在不使用 if 和 while 语句的情况下将十进制转换为二进制。也没有使用十进制到二进制字符串。

非常感谢。

包r

public static void main(String[] args) {
int number; 
int remainder;
Scanner in = new Scanner(System.in);

System.out.println("Enter a positive integer");
number=in.nextInt();
remainder= number %2; 
System.out.print(remainder);

{ 
return null;

这是我目前所拥有的。

【问题讨论】:

  • 我不明白你为什么不想使用 if 和 while 语句?
  • 我还没有学习 if 和 while 语句。我这样做是为了做作业,这是最后一个问题,给我带来了最大的麻烦。
  • 所以你想只使用for循环将十进制转换为二进制???
  • 您可以通过使用 RECURSION 概念来实现这一点
  • 请参考下面,看起来一样:stackoverflow.com/questions/14784630/…

标签: java binary decimal digits


【解决方案1】:

这是将十进制转换为二进制的方法:

使用 for 循环:

public class DecimalToBinary {

    public void printBinaryFormat(int decimalNumber){
    int remainder = 0;
    for (int i = 1; decimalNumber > 0; i++) {

        remainder = decimalNumber % 2;    
                decimalNumber /= 2;
                System.out.print(remainder);
            }
        }

    public static void main(String a[]){
        DecimalToBinary dtb = new DecimalToBinary();
        dtb.printBinaryFormat(25);
    }
}

使用while循环:

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);
    }
}

希望我能帮上忙。

快乐编码:D

【讨论】:

  • 转换二进制整数,而不是十进制数。
【解决方案2】:

试试这个:

String binaryString = Long.toBinaryString(Double.doubleToRawLongBits(yourDecimalNumber));

其中yourDecimalNumber 是您要转换为二进制的十进制变量的名称。

您也可以使用 for 循环和按位运算,而无需使用任何 if 或 while 语句,如下所示:

int number = 10;
String binaryString = "";
final int intBitSize = 32; // 32 is the number of bits in an int.

for(int i=0; i<intBitSize; i++)
{
    binaryString = String.valueOf(number&1) + binaryString;

    number = number >>> 1;
}

System.out.println(binaryString);

【讨论】:

  • 这会起作用,但我不能使用将十进制数转换为二进制的单个字符串。我可以使用 for 循环来获取余数,而不是使用字符串将其作为二进制数。
  • 好的,我还是把这个答案留在这里,以防它对其他人有用。
  • 我已经花了三个多小时试图找出这个问题,但到目前为止我一无所获。 :(
  • if 和 while 语句非常简单明了,可能比 for 循环更容易理解。我认为使用 for 循环执行此操作的唯一方法是使用按位运算,这比使用 if 和 while 语句要复杂得多。
  • @AtifShah 看到我更新的答案,它使用 for 循环,没有任何 if 或 while 语句。
猜你喜欢
  • 2011-07-09
  • 2013-01-24
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 2021-01-29
相关资源
最近更新 更多