C#从数字中删除特定位

时间:2016-12-11 19:32:37

标签: c# bit-manipulation byte bits

我有一个字节,每次值都不同,我想清除它的两个最重要的位。

Example of what it could have have:
1100 0110

我想从号码中清除1100 0000,所以我最终得到了0000 0110。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以通过应用一个位掩码来表示需要保留在数字中的位:

byte mask = (1 << 6) - 1; // == 0011 1111

然后使用必须修改的数字执行按位AND:

number = ... // Number to modify
byte mask = (1 << 6) - 1; // == 0011 1111
byte result = number & mask;