3 回答
TA貢獻2039條經驗 獲得超8個贊
從位運算符:
$a & $b 并且在 $a 和 $b 中設置的位都被設置。
var_dump(196 & 4);
var_dump(196 & 16);
var_dump(4 & 16);
非零的地方0是:falsetrue
int(4)
int(0)
int(0)
您可以轉換為布爾值true或false:
var_dump((bool) (196 & 4));
TA貢獻1831條經驗 獲得超4個贊
按位的答案比我的要好得多,但這里是如何在不使用按位運算符的情況下做到這一點:
<?php
function hasMatchingBits($x, $y)
{
$x = strrev(decbin($x));
$y = strrev(decbin($y));
$lengthX = strlen($x);
$lengthY = strlen($y);
$length = $lengthX < $lengthY ? $lengthX : $lengthY;
for ($i = 0; $i < $length; $i++) {
if ($x[$i] === '1' && $y[$i] === '1') {
return true;
}
}
return false;
}
echo hasMatchingBits(196, 4) ? "Yes\n" : "No\n";
echo hasMatchingBits(196, 16) ? "Yes\n" : "No\n";
echo hasMatchingBits(4, 16) ? "Yes\n" : "No\n";
你可以在這里看到https://3v4l.org/8lSJX
TA貢獻1943條經驗 獲得超7個贊
使用位運算符:
$number1 = 196;
$number2 = 4;
if ($number1 & $number2){
echo "Number 1 and 2 are equal";
} else {
echo "Number 1 and 2 are not equal";
}
- 3 回答
- 0 關注
- 119 瀏覽
添加回答
舉報
