contributed by < a12345645
>
LEFT
= 63 - h
RIGHT
= l
~0UL
為所有位元皆為 1
(~0UL) >> (63 - h)
為最低位元到第 h
位元皆為 1
(~0UL) >> (l) << (RIGHT))
為第 l
到最高位元都為 1
要將 v
對 4 個位元組進行向下對齊
代表要清除 v
的最後兩個位元
所以是 v & ~3
EXP1
= v & ~3
EXP2
= 0x33
EXP3
= 0x55
舉例原本為 01101010
x = (x >> 4) | (x << 4)
0110 | 1010
1010 | 0110
x = ((x & 0xCC) >> 2) | (0x33)
10 | 10 | 01 | 10
10 | 10 | 10 | 01
1 | 0 | 1 | 0 | 1 | 0 | 0 | 1
0 | 1 | 0 | 1 | 0 | 1 | 1 | 0