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