Каков оптимальный способ замены младшего значащего бита на предоставленный бит?
Я знаю, как выполнять проверку и сравнение последнего бита (используя, например, функцию 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'
Очевидно, оператор может быть набором операций, но я ищу оптимальный (самый быстрый) метод.