gpt4 book ai didi

javascript - 如何检查是否设置了位(没有按位运算)?

转载 作者:行者123 更新时间:2023-12-04 02:19:53 25 4
gpt4 key购买 nike

查看 int 44 — 我需要 Math.CEIL (log(2) 44)表示 44 的二进制位置.
(答案是6个地方)

6个地方:

___  ___  ___  ___  ___   ___
32 16 8 4 2 1

但是我怎样才能检查(例如) 8 的位是否检查?

一个简单的解决方案是:
((1<<3) & 44)>0所以这将检查该位是否已设置。

但请注意,计算机在幕后翻译 44到它的二进制表示,只需检查位是否通过按位运算设置。

另一种解决方案是自己通过 toString(2) 构建二进制文件。或 mod%2在一个循环中

问题

数学上通过哪个公式,我可以测试 n'th位已设置?

(我更喜欢非循环操作,但更喜欢纯单一的数学短语)

最佳答案

除以您要检查的位的值
并测试是否设置了第一位(可以使用 x mod 2 == 1 进行测试)

数学表达式:

floor(value/(2^bitPos)) mod 2 = 1

作为 JS 函数:
function isSet(value, bitPos) {
var result = Math.floor(value / Math.pow(2, bitPos)) % 2;
return result == 1;
}

注意:bitPos 以 0 开头(代表 nr 1 的位)

关于javascript - 如何检查是否设置了位(没有按位运算)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com