2つめ着目ビットが 0 -> 1 となったとき 1つめ対象ビットを 反転/0/1 にする
2つめ着目ビットが 1 -> 0 となったとき 1つめ対象ビットを 反転/0/1 にする

0->1 でも 1->0 でも 1つめ対象ビットを反転すればいいのけ?

new_1st = old_1st ^ (old_2nd ^ new_2nd);