繁体   English   中英

十进制到二进制转换Java

[英]decimal to binary conversion java

我的方法似乎只适用于所有小于2 ^ 10的int。 如果大于或等于此值,则仅返回2 ^ 32。 我不确定我的程序是如何得到这个的。 我需要使其对所有小于或等于2 ^ 15的int起作用。 至少有人能看到为什么为什么int大于或等于2 ^ 10返回2 ^ 32吗? 如果是这样,请告诉我。

public static int DecToBin(int num) {
    int binNum = 0;
    int divisor = num;
    int mod = 0;
    int exp =0;

    while(divisor != 0){
        mod = divisor%2;
        divisor = divisor/2;
        if(mod==1){
            binNum = (int) (binNum + (Math.pow(10, exp)));
        }
        exp++;
    }
    return binNum;

}

一个总是很容易做到这一点的方法是:

Integer.toBinaryString(int);

这是最简单的方法,但他们可能是更有效的方法。

希望这是您想要的

正如Taco所指出的,您可以调用Integer.toBinaryString(int) ,但是如果这是为了赋值或您应该自己编写方法的事情,这就是我要做的。

我会写一个方法,将数字不断除以2,并将余数存储在String中。 像这样:

String binaryString = "";
int value = 100;
while(value > 0){
   int remainder = value % 2;
   value = value/2;
   binaryString = remainder + binaryString;
}

我在快速控制台运行中对此进行了测试,得出的结果是“ 1100100”,它是正确的。

编辑我以此为参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM