我正在尝试在JavaScript中获得bit
number
中最不重要的内容。
我有以下代码:
let lsb = (parseInt("110", 2) & 0xffff);
根据我的理解,110的最低有效位是1 1 0,因为它是最右边的设置位。
但是,上面的代码会返回' 6',这是110
的总值,而不是最不重要的bit
。
我怎样才能得到最低位?
答案 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