c-如何在不影响低位的情况下,用另一个数字的位逐位替换一个数字中的位范围以进行递增



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

最简单的方法是从4位开始递增,即:

data_bits += 1 << 4;

这使得较低的4位保持不变。

最新更新