首页 > 解决方案 > 有效地迭代二进制数并检查 Javascript 中的位值?

问题描述

我需要遍历从 0 到 X 的数字,对于每个数字 i,我需要检查位置 a、b、c、d、e 的位是真还是假。

有没有一种简单的方法可以在 Javascript 中高效地做到这一点?目前我正在考虑手动迭代数字,将它们转换为二进制字符串,然后做string[a] === "0"一些事情。

标签: javascriptbinarybitbit-shift

解决方案


有一种方法可以做到这一点,您可以使用按位运算符

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

基本上,你有你的 &, | 和 XOR 运算符,您可以使用和组合来获得所需的结果。

例如,如果您想检查数字 2(二进制中的 10)是否在第二个索引中打开了位,您可以使用表达式 2 & 2 > 0。表达式将返回true

你想&你想检查的数字,只有在你要检查的索引中打开了位的数字,如果你想检查索引3是否打开了位,请使用数字4(100 in二进制)进行比较。


推荐阅读