在 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
我正在尝试获取 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