在 JavaScript 中获取最低有效位

Getting least significant bit in JavaScript

我正在尝试获取 JavaScript 中 number 的最不重要的 bit

我有以下代码:

let lsb = (parseInt("110", 2) & 0xffff);

据我了解,110 的最低有效位是 110,因为它是最右边的设置位。

然而,上面的代码returns'6',这是110的总值而不是最不重要的bit

如何获取最低有效位?

https://en.wikipedia.org/wiki/Least_significant_bit:

least significant bit (LSB) is the bit position in a binary integer giving the units value, that is, determining whether the number is even or odd

所以很简单:

let lsb = parseInt("110", 2) & 1

甚至这样:

let lsb = parseInt("110", 2) % 2

我以你为例,你正在寻找最低设置位,而不是最低有效位

您正在寻找的是一些按位破解。

我们可以利用负数的表示方式(二进制补码)来做到这一点

var lowestSetBit = (value) & (-value)

如果您实际上是在寻找最低有效位,那么您可以只屏蔽该位

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