Java 将十进制转换为二进制错误
我想把十进制转换成二进制,但下面的代码不起作用。 请帮我更正代码Java 将十进制转换为二进制错误,java,Java,我想把十进制转换成二进制,但下面的代码不起作用。 请帮我更正代码 package mainpackage; import java.util.*; class MainClass { public MainClass() { } public static int binaryfinder(int n) { int a[] = new int[8]; int i = 0; int b = 0; int n1 = n; while (n1 >
package mainpackage;
import java.util.*;
class MainClass {
public MainClass() {
}
public static int binaryfinder(int n) {
int a[] = new int[8];
int i = 0;
int b = 0;
int n1 = n;
while (n1 > 0) {
a[i] = n1 % 2;
i++;
n1 = n1 / 2;
}
System.out.printf("Binary number of %d is = ", n);
for (int j = i - 1; j >= 0; j--) {
b += ((10 ^ j) * a[j]);
}
return b;
}
public static void main(String[] args) {
System.out.println("\nEnter the number to find its binary value:\n");
Scanner k = new Scanner(System.in);
int num = k.nextInt();
int inBin = binaryfinder(num);
System.out.print(inBin);
}
}
单击RUN后,它会要求输入二进制值,当我输入值时,它会说,“二进制数0=”无论我输入什么,它都会输出“二进制数0=”。
不会抛出任何错误 你有一个无止境的循环,这就是为什么你的程序永远不会终止:
while (j != 0) {
b += ((10 ^ j) * a[j]);
}
这在java中应该可以做到
单击“运行”后,它会要求输入二进制值,当我输入值时,它会说,“二进制数0=”无论我输入什么,它都会输出“二进制数0=”。不会抛出任何错误
- 永无止境的
循环
while(j!=0){ b+=((10^j)*a[j]); }
- 您正在更改
的值,最后在n
之后进行循环:
,因此输出n=0
while(n>0){ a[i]=n%2; i++; n=n/2; } 系统输出打印项次(输出)代码>
- 您的程序(整体)不正确
其他选择: 1) 使用
Integer.toBinaryString()
2) 使用基本公式转换十进制-->二进制
int n = 10;
String output = "";
do {
output = (n % 2) + output; // reverse string
n = n / 2;
} while (n > 0);
非常确定
而(j!=0){b+=((10^j)*a[j]);}
永远运行。这是家庭作业吗。如果没有,那么就有内联方法来查找二进制文件。在这里,使用调试器来调试程序可以帮助您找到存在的问题。我假设您不能只执行Integer.toBinaryString(num)代码>此类问题的正确平台是
int n = 10;
String output = "";
do {
output = (n % 2) + output; // reverse string
n = n / 2;
} while (n > 0);