バイトの最下位ビットを提供されたビットに置き換える最適な方法は何ですか?
最後のビットをチェックして比較する方法は知っていますが(たとえば、posix ffs()関数を使用)、ビットの置換が0か1かをチェックせずに、より優れたパフォーマンスのソリューションがあるかどうかを知りたいです。
この例はPythonで擬似コードとして記述されていますが、動作するアルゴリズムをCで実装します。
>>> bin(0b1) # bit is '0b1'
>>> bin(128) # byte is '0b10000000'
>>> bin(129) # byte is '0b10000001'
>>> bin(128 OPERATOR 0b1) # Replace LSB with 1
'0b10000001'
>>> bin(128 OPERATOR 0b0) # Keep LSB at 0
'0b10000000'
>>> bin(129 OPERATOR 0b1) # Keep LSB at 1
'0b10000001'
>>> bin(129 OPERATOR 0b0) # Replace LSB with 0
'0b10000000'
明らかに、演算子は一連の操作にすることができますが、私は最適な(最速の)方法を探しています。