Java 替换最低有效位

Java 替换最低有效位,java,binary,Java,Binary,我想用给定的数组替换最低有效位 第一输入 01001100 00001000 10101010 01010100 11110110 第二输入 0 1 1 1 0 输出 01001100 00001001 10101011 01010101 11110110 试试这个(使用Java7) int[]i={0b01001100, 0b00001000, 0b10101010, 0b01010100, 0b11110110}; int[]j={0b0, 0b1, 0b1, 0b1, 0b0}; 对

我想用给定的数组替换最低有效位

第一输入

01001100
00001000
10101010
01010100
11110110
第二输入

0
1
1
1
0
输出

01001100
00001001
10101011
01010101
11110110
试试这个(使用Java7)

int[]i={0b01001100,
0b00001000,
0b10101010,
0b01010100,
0b11110110};
int[]j={0b0,
0b1,
0b1,
0b1,
0b0};
对于(int k=0;ki[k]=(i[k]>>1)我没有得到任何逻辑,我尝试了很多,这可能会帮助你的是数组的输入字符串?你可以添加任何你尝试的问题吗?谢谢。第一个二进制像素字符串数组第二个字节数组,我想替换第一个数组的每一个最低有效位,即从第二个数组的位二进制像素数组这是不可能的,因为两个数组都是user输入,经过大量处理后generated@user1939093这回答了您的问题。数组最终是如何形成的是另一个问题。@user1939093我以前的代码中有一个错误。我已经修复了它。
   int [] i = {0b01001100,
           0b00001000,
           0b10101010,
           0b01010100,
           0b11110110 };
   int [] j = {0b0,
           0b1,
           0b1,
           0b1,
           0b0 };

   for (int k = 0; k < i.length ; ++k){
       i[k] = (i[k] >> 1) << 1;  // this sets the last bit to zero
       i[k] = i[k] | j[k];       // Now you can OR to get replace with the proper value 
   }

   for(int k : i)
       System.out.printf("%8s\n",Integer.toBinaryString(k));
   System.out.println("----------");