如何从c#中的按位右移中删除位

时间:2013-06-03 13:07:19

标签: c# bit-manipulation shift

我有一个int号而且我必须将它向右移几次。

x   = 27 = 11011
x>>1= 13 = 1101
x>>2=  6 = 110
x>>3=  3 = 11

我想获取已删除的值位值。我必须得到:1,1,0

如何获取删除的值

3 个答案:

答案 0 :(得分:7)

(x & 1)为您提供最低有效位的值。您应该在转移之前计算

答案 1 :(得分:6)

对于最低有效位,您可以在每次换档前使用x & 1。如果您想在不更改值的情况下随时获取自定义位,可以使用以下方法。

    private static int GetNthBit(int x, int n)
    {
        return (x >> n) & 1;
    }

答案 2 :(得分:1)

在删除之前测试第一位

int b = x & 1;

See MSDN reference on & operator