我有一个16位的数字,LSB 4位用作检查设置的位字段,MSB 12位用作递增的number
。我知道tempNum = (data_bits >> 4)
会让我从更大的那个中得到number
。如果我想将tempNum
增加1,然后将其放回总的16位数字中作为替换,而不影响较低的4位,我将如何做到这一点?我只想使用bitwise
操作来完成此操作。
最简单的方法是从4位开始递增,即:
data_bits += 1 << 4;
这使得较低的4位保持不变。