用另一位单维替换最小有效位的双维数组

时间:2013-01-03 16:40:21

标签: java

我试图从结果数组的位

替换rgb的最低有效位
for (int k = 0; k < rgb.length ; ++k)
{       
    for (int n=0; n<rgb[k].length; n++) 
    {               
        rgb[k][n] = (rgb[k][n] >> 1) << 1;  
        rgb[k][n] = rgb[k][n] | result[n];       
    }
}

rgb是双维数组,结果是单维数组, rgb的价值就像 10010110个
11000110个
10101010 结果数组的位置 0
1
1 ...

但我得不到合适的输出..

1 个答案:

答案 0 :(得分:3)

所以你要努力

int[][] rgb = {{1, 2}, {3, 4}};
int[] result = {0, 1};

for (int[] arr : rgb)
    for (int n = 0; n < arr.length; n++)
        arr[n] = result[n] == 0 ?
                 (arr[n] & ~1) /* clear */ : 
                 (arr[n] | 1) /* set */;


for (int[] arr : rgb) {
    String sep = "";
    for(int i : arr) {
        System.out.print(sep + Integer.toBinaryString(i));    
        sep = ", ";
    }
    System.out.println();
}

打印

0, 11
10, 101