Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中从按位右移中删除位#_C#_Bit Manipulation_Shift - Fatal编程技术网

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

C# 如何在c中从按位右移中删除位#,c#,bit-manipulation,shift,C#,Bit Manipulation,Shift,我有一个整数,我必须将它向右移动几次 x = 27 = 11011 x>>1= 13 = 1101 x>>2= 6 = 110 x>>3= 3 = 11 我想获取已删除的值位值。我必须得到:1,1,0 如何获取删除的值(x&1)为您提供最低有效位的值。你应该在换班前计算一下 删除前只需测试第一个位 int b = x & 1; 对于最低有效位,您可以在每次移位之前使用x&1。如果您想在任何时候获得自定义位而不更改其值,可以使用下面的方法

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

x   = 27 = 11011
x>>1= 13 = 1101
x>>2=  6 = 110
x>>3=  3 = 11
我想获取已删除的值位值。我必须得到:1,1,0


如何获取删除的值

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

删除前只需测试第一个位

int b = x & 1;

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

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

你试过什么了吗?你能在每次正确转换之前都做x&1吗?有趣的是,在你确定了这些位之后,你在用它们做什么?如果您以某种方式再次组合它们,可能会有一种更有效的方法来完成整个操作。不错,但为什么不只是
(x>>n)&1
?您是对的!这是我第一次想到的,我更新了(: