我正在尝试对两个数字进行比较,但我只希望其中一个数字的第 n 位等于某个二进制值
例如:断言 (5==0b1XX) == true 因为 5 是 0b101 并且第 3 个 MSB 是 1
我可以在 javascript 中使用无关 (X) 吗?
最佳答案
使用按位 SHIFT >>
以及按位 AND &
来实现此目的。
// SHIFT off the first two bits, then check the first bit with AND
(0b101 >> 2 & 1) === 1
>>
会将位向右移动并丢弃所有移出的位。
1
时,&
将返回1。
Here is the MDN page on bitwise operators .
这是一个可以用于任何位置的任何值的函数:
// returns true if 'target' has a 'value' at 'position'
function checkBit(target, position, value) {
return (target >> (position - 1) & 1) === value;
}
关于javascript - 仅比较数字的特定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694380/