替换最低有效位

时间:2013-01-02 06:47:48

标签: java binary

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

第一次输入

01001100
00001000
10101010
01010100
11110110

第二次输入

0
1
1
1
0

输出

01001100
00001001
10101011
01010101
11110110

1 个答案:

答案 0 :(得分:1)

试试这个(使用java 7)

   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("----------");