首页 > 解决方案 > 检查两个数字是否设置了相同的位

问题描述

我有两个十进制数字。如果设置了任何相同位置的两个位,则比较应返回 true,否则返回 false。例如

  1. 数字1 = 196 = 11000100
  2. number2 = 4 = 00000100
  3. number3 = 16 = 00010000

=> number1 和 number2 的比较将返回 true。

=> number1 和 number3 的比较将返回 false。

=> number2 和 number3 的比较将返回 false。

在 PHP 中,是否有用于此类比较的内置函数,或者我们如何为其编写自定义逻辑?

标签: php

解决方案


位运算符

$a & $b 并且在 $a 和 $b 中设置的位都被设置。

var_dump(196 & 4);
var_dump(196 & 16);
var_dump(4 & 16);

非零的地方0是:falsetrue

int(4)
int(0)
int(0)

您可以转换为布尔值truefalse

var_dump((bool) (196 & 4));

推荐阅读