位运算

以S = 1001011,j = 0000000为例。

获取第 i 标志位

j = 0000001
(shift left j) * i
S AND j

切换第 i 标志位

j = 0000001
(shift left j) * i
S XOR j
(XOR: 11 = 0 10 = 1 01 = 1 00 = 0)

清除第 i 标志位

j = 0000001
(shift left j) * i
invert j(反转)
S AND j

获取最后一个有效位

j = NOT(S)+1
S AND j
S = 1001011
j = 0000000

获取第 i 标志位

j = 0000001
(shift left j) * i
S AND j

切换第 i 标志位

j = 0000001
(shift left j) * i
S XOR j
(XOR: 11 = 0 10 = 1 01 = 1 00 = 0)

清除第 i 标志位

j = 0000001
(shift left j) * i
invert j(反转)
S AND j

获取最后一个有效位

j = NOT(S)+1
S AND j
S = 1001011
j = 0000000

获取第 i 标志位

j = 0000001
(shift left j) * i
S AND j

切换第 i 标志位

j = 0000001
(shift left j) * i
S XOR j
(XOR: 11 = 0 10 = 1 01 = 1 00 = 0)

清除第 i 标志位

j = 0000001
(shift left j) * i
invert j(反转)
S AND j

获取最后一个有效位

j = NOT(S)+1
S AND j
S = 1001011
j = 0000000

获取第 i 标志位

j = 0000001
(shift left j) * i
S AND j

切换第 i 标志位

j = 0000001
(shift left j) * i
S XOR j
(XOR: 11 = 0 10 = 1 01 = 1 00 = 0)

清除第 i 标志位

j = 0000001
(shift left j) * i
invert j(反转)
S AND j

获取最后一个有效位

j = NOT(S)+1
S AND j