Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
如何在Javascript中清除特定位位置以上的所有位_Javascript_Node.js - Fatal编程技术网

如何在Javascript中清除特定位位置以上的所有位

如何在Javascript中清除特定位位置以上的所有位,javascript,node.js,Javascript,Node.js,我对Javascript有一点操作问题 我有一个数字需要清除一些高位。需要清除的确切位是通过编程确定的,经过一些计算,我有两条信息,一个位位置和一个特定位位置的掩码。我要做的是清除我的值中该位位置(不包括该位)上方的所有位 因此,如果我的值为: 0b11111111 并且,计算得出位位置3和该位位置的掩码: 0b00000100 我想屏蔽或清除我的值中位位置3上方的位,并最终得到: 0b00000111 作为提醒,我想在上面清除的位位置是通过编程确定的,可以是任何位位置,所以我不能只

我对Javascript有一点操作问题

我有一个数字需要清除一些高位。需要清除的确切位是通过编程确定的,经过一些计算,我有两条信息,一个位位置和一个特定位位置的掩码。我要做的是清除我的值中该位位置(不包括该位)上方的所有位

因此,如果我的值为:

 0b11111111
并且,计算得出位位置3和该位位置的掩码:

 0b00000100
我想屏蔽或清除我的值中位位置3上方的位,并最终得到:

 0b00000111
作为提醒,我想在上面清除的位位置是通过编程确定的,可以是任何位位置,所以我不能只编写预定义的掩码。我该怎么做?编程环境是node.js中的Javascript

 value & ((mask << 1) - 1)

逻辑基本相同,但当乘法在52位尾数上执行时,您会得到多一位。

非常好。它起作用了。忘记了-1选项。我很清楚bit的局限性。我每值使用31位。太好了。最后一句是关于未来的“复制和粘贴者”嗯,看起来我必须确保并且不要对第31位运行它(在这种情况下实际上没有什么需要清除的),因为我认为
掩码是正确的,如果JS会做整数减法,它会工作,但是当
-1
在64位浮点上执行时,这不会工作。不确定处理边缘情况是否比以另一种方式构建掩码更简单。等等,
mask*2-1
value & (mask * 2 - 1)