在JavaScript中获得最重要的一点

时间:2016-02-04 00:13:33

标签: javascript bit-manipulation bitwise-operators

我正在尝试在JavaScript中获得bit number中最不重要的内容。

我有以下代码:

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

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

但是,上面的代码会返回' 6',这是110的总值,而不是最不重要的bit

我怎样才能得到最低位?

4 个答案:

答案 0 :(得分:10)

我举了你的例子,你正在寻找最低的设定位,而不是最低位

你正在寻找的是一点点破解。

我们可以通过对负数表示方式的一些利用来做到这一点(两个补充)

var lowestSetBit = (value) & (-value)

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

var leastSignificantBit = value & 1

答案 1 :(得分:5)

最低位是最右边的位,而不是最右边的位。为此,与1进行对比。

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

答案 2 :(得分:3)

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

  

最低有效位(LSB)是二进制整数中的位位置   给出单位值,即确定数字是否为   偶数或奇数

这很简单:

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

甚至是这样:

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

答案 3 :(得分:2)

通过以下方式可以轻松找到数字的最低有效位:

someNumber & 1

或在您的具体案例中:

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

这通过屏蔽的每一位都为零,除了最低有效位,即&amp;&#39;和<1>。

例如,让我们的输入数字为21

21 & 1

与:

相同
  10101
& 00001 
-------
  00001 // => returns 1 since the last bit is turned on