function print_bits($n) {
for ($i = 3; $i >= 0; $i--) {
echo ($n >> $i) & 1;
}
echo "<br />";
}
function is_all_bits_set($n) {
return ($n + 1) & $n;
}
$n = 15;
print_bits($n);
print_bits($n + 1);
print_bits(($n + 1) & $n);
if (is_all_bits_set($n) == 0) {
echo "Yes" . "<br />";
} else {
echo "No" . "<br />";
}
$n = 13;
print_bits($n);
print_bits($n + 1);
print_bits(($n + 1) & $n);
if (is_all_bits_set($n) == 0) {
echo "Yes" . "<br />";
} else {
echo "No" . "<br />";
}
/*
run:
1111
0000
0000
Yes
1101
1110
1100
No
*/