php - 检查两个数字是否设置了相同的位
问题描述
我有两个十进制数字。如果设置了任何相同位置的两个位,则比较应返回 true,否则返回 false。例如
- 数字1 = 196 = 11000100
- number2 = 4 = 00000100
- number3 = 16 = 00010000
=> number1 和 number2 的比较将返回 true。
=> number1 和 number3 的比较将返回 false。
=> number2 和 number3 的比较将返回 false。
在 PHP 中,是否有用于此类比较的内置函数,或者我们如何为其编写自定义逻辑?
解决方案
从位运算符:
$a & $b 并且在 $a 和 $b 中设置的位都被设置。
var_dump(196 & 4);
var_dump(196 & 16);
var_dump(4 & 16);
非零的地方0
是:false
true
int(4)
int(0)
int(0)
您可以转换为布尔值true
或false
:
var_dump((bool) (196 & 4));
推荐阅读
- node.js - 无法从 Jelastic 中的 git 正确部署 Vuejs 应用程序
- javascript - 将没有键的值推送到 javascript 数组
- javascript - React 映射和组件化复杂性
- windows - 为什么 dumpbin 中可执行文件的入口点地址与 WinDbg 不同?
- python - Pandas:具有特定索引的重复 for 循环
- r - 如何交叉多个列表
- java - MySQL:由于时区,表中的日期值与选择结果中的值不同
- excel - 扫描一个单元格,有 2 个变量( cells(i,j) )
- database - 如何将 Syncfusion 图表绑定到 SQL 数据源?
- macos - MPID_nem_tcp_init(384).............: gethostbyname 失败,Mac (errno 1)