微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

`(sum &operand) ===operand` 在下面的代码中是如何工作的? 按位与

如何解决`(sum &operand) ===operand` 在下面的代码中是如何工作的? 按位与

以下代码检查 sum 是否有 operand代码非常简单,但我对条件 (sum & operand) === operand 感到困惑。

我读过 Bitwise AND (&) 文档,更让我困惑,有人能用简单的术语解释一下吗?

const has = (sum,operand) => (sum & operand) === operand

console.log(has(7,4))

解决方法

这种代码通常在您使用 bitflags 时使用。本质上,您想检查 operand 位是否也在 sum 中设置。

7 的二进制表示是 00000111,而 4 的二进制表示是 00000100

通过执行按位 AND 运算 A & B,您“保留”了两者之间的相同位,同时将所有其他位设置为 0。再次将结果与 B 进行比较可以让您了解如果全部B 中设置的位也在 A 中设置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。