0

別のベクトルでいくつかの操作を実行するために、マトリックス内の数値の範囲のバイナリ表現を取得する必要があります。

では、0 から 15 までの2^4の数値のバイナリ表現を取得するとします。16x4の行列が必要であることはわかっています。

私はこのコードを持っています:

int [][] a = new int[15][4];

for (int i = 0; i < a.length; i++) {
    a[i] = String.format("%5s", Integer.toBinaryString(i)).replace(' ', '0').toCharArray();
}

したがって、バイナリ形式の数値 a の配列表現であるため、char[]単に に代入することはできませんa[i]

char 配列をループせずにキャストを実行する方法はありますか?

4

3 に答える 3

0

行を反復処理するには、外側のループが1 つ必要になると思います。char[][]

int[] charArray2intArray(char[][] binary) {

    int[] numbers = new int[binary.length];
    int row = 0;
    for (char[] number: binary) {

        String bin = new String(number);
        numbers[row++] = Integer.parseInt(bin, 2);
    }

    return numbers;
}
于 2013-11-14T20:34:01.030 に答える