6

我有一个整数,我必须将它向右移动几次。

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

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

我怎样才能得到删除的值

4

3 回答 3

7

(x & 1)为您提供最低有效位的值。你应该在换班之前计算一下。

于 2013-06-03T13:10:09.667 回答
6

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

    private static int GetNthBit(int x, int n)
    {
        return (x >> n) & 1;
    }
于 2013-06-03T13:13:33.267 回答
1

在删除它之前只需测试第一个位

int b = x & 1;

请参阅有关 & 运算符的 MSDN 参考

于 2013-06-03T13:10:40.373 回答