什麼是用提供位替換字節最低有效位的最佳方法?用位運算替換最低有效位
我知道該怎麼做檢查和最後一位比較(例如使用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'
顯然,運營商可以是一組操作,但是我正在尋找最佳(最快)的方法。
如果我的替換位是0或1,我總是要檢查。有一個'通用'操作符? – Emilio 2011-05-19 13:34:43
@Emilion:'(n&〜1)| b' – NPE 2011-05-19 13:36:23
lòl,完美。非常感謝。 – Emilio 2011-05-19 13:40:34