function print_bits($n) {
for ($i = 7; $i >= 0; $i--) {
echo ($n >> $i) & 1;
}
echo "<br />";
}
function check_same_set_and_unset_bits($n) {
$set = 0;
$unset = 0;
while ($n) {
if ($n & 1) {
$set++;
}
else {
$unset++;
}
$n = $n >> 1;
}
if ($set == $unset) {
return true;
}
return false;
}
$n = 178;
print_bits($n);
if (check_same_set_and_unset_bits($n)) {
echo "Yes<br />";
}
else {
echo "No<br />";
}
$n = 179;
print_bits($n);
if (check_same_set_and_unset_bits($n)) {
echo "Yes<br />";
}
else {
echo "No<br />";
}
/*
run:
10110010
Yes
10110011
No
*/