在矩阵中拆分二进制值

时间:2015-03-25 16:52:51

标签: java string matrix binary

我有3x2矩阵,我转换成二进制格式。每个二进制表示应该有7位。我使用String.format方法来获取二进制矩阵。

0000111 1101000
0000101 1100101
0001100 1110010

现在我需要将每个二进制值拆分成它的位,使3x2矩阵转换为3x14。

`int[][] p = {{7,104},{5,101},{12,114}};
 int n;
 String[][] P = new String[3][2];
 for (int i =0; i<3;i++)
 {
 for(int j=0 ; j<2;j++)
 {
 P[i][j] =String.format("%7s", Integer.toBinaryString(p[i][j])).replace(' ',     '0');
 }
 }`

如何将二进制字符串拆分为单独的位以获得3x14矩阵? 可以使用String.split()方法吗?我如何将该方法用于矩阵?

1 个答案:

答案 0 :(得分:1)

static int[][] p = {{7,104},{5,101},{12,114}};
static int bit( int[][] p, int row, int col ){
    return (p[row][col/7] >> (7 - col%7 - 1)) & 1;
}

col / 7为0-6和7-14的范围产生0和1。 col%7导致值0,1,... 6。因此,班次移动了6,5,... 0次。

public static void main(String[] args)throws Exception {
  for( int r = 0; r < 3; ++r ){
    for( int c = 0; c < 14; ++c ){
      System.out.print( " " + bit(p, r,c) );
    }
  System.out.println();
}

当然,您可以将其存储在3x14阵列中。