Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 第二个阵列未打印_Java_Arrays_Binary - Fatal编程技术网

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] + " ");
}