我需要在VBA中使用位操作。例如,我想在1秒内将第一位设置为0秒,依此类推。我该怎么做?
非常感谢!
答案 0 :(得分:1)
你可以使用面具。
如果您要设置* n-th
位,您可以对原始值执行Or
操作,并使用0
除之外的掩码执行n-th
职位。
这样,1100 Or 0001
会将第一位设置为1101
。 1100 Or 0010
会设置第二位,结果为1110
。
如果你想取消* n-th
位置,你可以做相反的事情。使用填充And
的掩码对原始值执行1
操作,但 n-th
位置除外。
这样,0011 And 1110
将取消导致0010
的第一位,0011 And 1101
将取消设置第二位,从而产生0001
。
* Set表示将该位变为1. Unset表示将该位变为0。