You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript检查指定位是否置位:0xFFFFFFFFFFFFFFFD测试咨询

确认你的位检查实现是正确的!

首先给你吃个定心丸:你的测试结果全返回false完全符合预期,而且如果你的实现是用**按位与(&)**来判断指定位是否置位的话,这个写法本身也是正确的。

咱们拆解下原因:
你要检查的数值0xFFFFFFFFFFFFFFFD,以64位二进制视角看,末尾几位是...11111101——从0开始数对应位的话:

  • 位1(对应掩码0x2,即二进制10)是0
  • 位6(对应掩码0x40,即二进制1000000)是0
  • 位7(对应掩码0x80,即二进制10000000)是0
    这些位本来就没被置位,所以判断返回false是完全合理的。

正确的位检查方式(附代码示例)

在JavaScript里,检查指定位是否激活的标准做法就是用按位与操作:如果(数值 & 掩码) !== 0,说明该位是1(置位);反之则是0(未置位)。不过要注意一个细节:0xFFFFFFFFFFFFFFFD已经超出了普通Number类型的精确整数范围(Number只能精确表示-253到253之间的整数),所以建议用BigInt处理这个大数值,避免精度丢失:

// 用BigInt表示大数值和掩码
const targetValue = 0xFFFFFFFFFFFFFFFDn;
const mask2 = 0x2n;
const mask40 = 0x40n;
const mask80 = 0x80n;

// 检查每一位
console.log(`0x2位是否置位:${(targetValue & mask2) !== 0n}`); // false
console.log(`0x40位是否置位:${(targetValue & mask40) !== 0n}`); // false
console.log(`0x80位是否置位:${(targetValue & mask80) !== 0n}`); // false

如果你的测试代码逻辑和上面一致,那你的实现就是正确的。

内容的提问来源于stack exchange,提问作者Suman Dabbiru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:10:46