[英]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.