Java 第二个阵列未打印
当我在编译器中运行代码时,由于某种原因,第二个数组没有打印,即使它本质上与创建第一个数组副本和粘贴的代码相同。第一个数组不打印 有人能告诉我为什么第二个数组没有打印吗Java 第二个阵列未打印,java,arrays,binary,Java,Arrays,Binary,当我在编译器中运行代码时,由于某种原因,第二个数组没有打印,即使它本质上与创建第一个数组副本和粘贴的代码相同。第一个数组不打印 有人能告诉我为什么第二个数组没有打印吗 public static void main(String[] args) { Scanner s = new Scanner(System.in); int n; int i = 0; int count = 0; int x; int d = 0; int coun
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int n;
int i = 0;
int count = 0;
int x;
int d = 0;
int count2 = 0;
System.out.println("Enter a base ten number between 0 and 255, inclusive.");
n = s.nextInt();
System.out.println("Enter a base ten number between 0 and 255, inclusive.");
x = s.nextInt();
int[] bin = new int[8];
int[] bin2 = new int[8];
while (count < 8) {
bin[i] = n % 2;
i++;
n = n / 2;
count++;
}
System.out.print("First binary number: ");
for (int j = i - 1; j >= 0; j--) {
System.out.print(bin[j] + " ");
}
while (count2 < 8) {
bin2[d] = x % 2;
d++;
x = x / 2;
count2++;
}
System.out.print("\n\nSecond binary number: ");
for (int z = x - 1; z >= 0; z--) {
System.out.print(bin2[z] + " ");
}
}
publicstaticvoidmain(字符串[]args)
{
扫描仪s=新的扫描仪(System.in);
int n;
int i=0;
整数计数=0;
int x;
int d=0;
int count2=0;
System.out.println(“输入一个介于0和255之间的以10为基数的数字,包括0和255”);
n=s.nextInt();
System.out.println(“输入一个介于0和255之间的以10为基数的数字,包括0和255”);
x=s.nextInt();
int[]bin=新int[8];
int[]bin2=新的int[8];
而(计数<8){
bin[i]=n%2;
i++;
n=n/2;
计数++;
}
系统输出打印(“第一个二进制数:”);
对于(int j=i-1;j>=0;j--){
系统输出打印(bin[j]+“”);
}
而(计数2<8){
bin2[d]=x%2;
d++;
x=x/2;
count2++;
}
System.out.print(“\n\n第二个二进制数:”);
对于(intz=x-1;z>=0;z--){
系统输出打印(bin2[z]+“”);
}
}
从
for (int z = x - 1; z >= 0; z--) {
到
与前面的循环一样,x可能已变为0,并且您正在尝试执行以下操作:
z = -1 and z >=0
在for循环中,这就是它不进入for循环的原因。在第一个循环中,从
i
倒计时到零。在第二个循环中,i
的等价物是d
但是,您不是从d
开始倒计时,而是从x
开始倒计时,这会给出错误的结果。因此,要做的改变是:
for (int z = d - 1; z >= 0; z--) {
System.out.print(bin2[z] + " ");
}
改变这个
System.out.print("\n\nSecond binary number: ");
for (int z = x - 1; z >= 0; z--) {
System.out.print(bin2[z] + " ");
}
到
System.out.print("\n\nSecond binary number: ");
for (int z = x - 1; z >= 0; z--) {
System.out.print(bin2[z] + " ");
}
System.out.print("\n\nSecond binary number: ");
for (int z = d - 1; z >= 0; z--) {
System.out.print(bin2[z] + " ");
}