长到二进制字符串为64位并将其添加到8x8数组

时间:2017-03-24 02:17:28

标签: java 2d

说,我有一个二进制字符串,如

62

它的64位,我希望它是0011110001000010100000011000000110000001100000010100001000111100

for(int i = 0; i < Long.numberOfLeadingZeros((long)num); i++) {
            System.out.print('0');
        }
        System.out.println(Long.toBinaryString((long)num));

我可以将其打印为64,但如何保存它以便将其添加到数组中?

00111100
01000010
10000001
10000001
10000001
10000001
01000010
00111100

此外,我想添加2D数组,以便将其显示为8x8

for(int i = 0; i < bin1.length(); i++){
            for(int j = 0; j < 8; j++){
                for(int z = 0; z < 8; z++){
                    table[j][z] = bin1.charAt(i);
                }
            }
        }

这是我将其添加到数组的代码,

0

但是当我打印它时,它只打印00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 s。

$ git push origin master

2 个答案:

答案 0 :(得分:4)

你走了:

package.json

答案 1 :(得分:0)

使用下面的方法将其保存为您想要的2d数组:

int j=0,z =0;
for(int i = 0; i < Long.numberOfLeadingZeros((long)num); i++) {
        System.out.print('0');
        table[j][z++] = '0';
        if(z>7){
           j++;
           z=0;
        }
}

String a = Long.toBinaryString((long)num);
for(int g = 0; g < a.length(); g++){
        table[j][z++] = a.charAt(g);
        System.out.print(a.charAt(g));
        if(z>7){
           j++;
           z=0;
        }
    }
    System.out.print("\n");
    for(int k = 0; k < 8; k++){
        for(int s = 0; s < 8; s++){
            System.out.print(table[k][s]);
        }
        System.out.print("\n");
    }
}