2013/02/02

組合兩個 bitmap 的方法

寫程式的時候,我們經常需要將兩個 bitmap 組合起來。譬如,取 A 的前三 bit 和 B 的後五 bit 組成一個新的 bitmap。通常我們會這麼寫:
M= 0xE0;
C = (A & M) | (B & ~M);
整理舊書時,看到以前唸大學時的筆記有另一個有趣的方法:
M = 0xE0;
C = ((A ^ B) & M) ^ B;
第二個方法沒那麼直覺,但可以省下一個 ~ 運算。

沒有留言: