获取JavaScript中的最低有效位
我试图在JavaScript中获取获取JavaScript中的最低有效位,javascript,bit-manipulation,bitwise-operators,Javascript,Bit Manipulation,Bitwise Operators,我试图在JavaScript中获取数字的位的最低有效位 我有以下代码: let lsb = (parseInt("110", 2) & 0xffff); 根据我的理解,110的最低有效位是110,因为它是最右边的设定位 但是,上面的代码返回“6”,这是110的总值,而不是最低有效位 如何获取最低有效位?: 最低有效位(LSB)是二进制整数中的位位置 给出单位值,即确定数字是否为 偶数或奇数 所以很容易: let lsb = parseInt("110", 2) & 1 甚至这
数字的位的最低有效位
我有以下代码:
let lsb = (parseInt("110", 2) & 0xffff);
根据我的理解,110的最低有效位是110,因为它是最右边的设定位
但是,上面的代码返回“6”,这是110
的总值,而不是最低有效位
如何获取最低有效位?:
最低有效位(LSB)是二进制整数中的位位置
给出单位值,即确定数字是否为
偶数或奇数
所以很容易:
let lsb = parseInt("110", 2) & 1
甚至这个:
let lsb = parseInt("110", 2) % 2
我以您的示例为例,您正在寻找最低设置位,而不是最低有效位
你要找的是一个位黑客
我们可以利用负数的表示方式(二的补码)来实现这一点
如果您实际上是在寻找最低有效位,那么您可以只屏蔽该位
var leastSignificantBit = value & 1
最低有效位是最右边的位,而不是设置的最右边的位。要得到它,请使用1
let lsb = parseInt("110", 2) & 1;
查找数字的最低有效位可以通过以下方式轻松完成:
someNumber & 1
或者在您的具体情况下:
let lsb = (parseInt("110", 2) & 1
其工作原理是用零屏蔽每个位,最低有效位除外,最低有效位为1
例如,让我们的输入号为21
21 & 1
同:
10101
& 00001
-------
00001 // => returns 1 since the last bit is turned on
谢谢,我误解了最低有效位的含义。您缺少输入基数2。他原始代码中解析整数的部分使用基数2,所以我认为这很清楚。如果这不是他想要的,为什么他会故意将第二个参数赋给parseInt
?无论如何,您相信您想要的。&0xffff
既不是获取最低设置位的方法,也不是获取lsb的方法。这与他们两个完全无关。lowerstsetbit
对我非常有用。比展开快得多,非常优雅。我一个人根本不会想到这一点。我相信lowerstsetbit
将返回值而不是位。
10101
& 00001
-------
00001 // => returns 1 since the last bit is turned on