function print_bits($n) {
for ($i = 7; $i >= 0; $i--) {
echo ($n >> $i) & 1;
}
echo "<br />";
}
function is_only_first_and_last_bit_set($n) {
return ((($n - 1) & ($n - 2)) == 0);
}
$n = 129;
print_bits($n);
print_bits($n - 1);
print_bits($n - 2);
print_bits(($n - 1) & ($n - 2));
if (is_only_first_and_last_bit_set($n)) {
echo "Yes";
}
else {
echo "No";
}
/*
run:
10000001
10000000
01111111
00000000
Yes
*/