Как вы можете преобразовать целое число в его представление битов?
Например, представление числа 9 в битах: 10011
Например, чтобы преобразовать битовую последовательность в ее представление int, вы можете сделать это:
$bits_sq = array(1,0,0,1,1);
function convert_bits_to_int($bits_sq){
$sum = 0;
for($i=0; $i < count($bits_sq); $i++){
$sum = $sum + $bits_sq[$i] * pow(-2, $i);
}
print $sum; // equals to 9
}
Но я хочу наоборот.
Редактировать: НЕ ОШИБКА БИТОВ С БИНАРНЫМИ, ЭТО НЕ ДУБЛИРУЙТЕ, НИКОГДА НЕ ОТВЕТИТЕ ЗА ВЫШЕ
Вам нужно использовать decbin () для преобразования целого числа в двоичное.
Мой PHP ржавый, однако, если вы хотите сделать обратное этому примеру
$bits_sq = array(1,0,0,1,1);
function convert_bits_to_int($bits_sq){
$sum = 0;
for($i=0; $i < count($bits_sq); $i++){
$sum = $sum + $bits_sq[$i] * pow(-2, $i);
}
print $sum; // equals to 9
}
тогда я полагаю, вы хотите что-то вроде:
$bits_sq = convert_int_to_bits ($iValue);
function convert_int_to_bits ($iValue) {
$bits = array(); // initialize the array
do {
$bits[] = ($iValue & 1);
$iValue >>= 1; // shift the bit off so that we go to the next one
} while ($iValue); // continue as long as there are still some bits.
// we have the bits in reverse order so lets reverse it.
return array_reverse($bits);
}