Конвертировать int в представление битов в переполнении стека

Как вы можете преобразовать целое число в его представление битов?

Например, представление числа 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
}

Но я хочу наоборот.

Редактировать: НЕ ОШИБКА БИТОВ С БИНАРНЫМИ, ЭТО НЕ ДУБЛИРУЙТЕ, НИКОГДА НЕ ОТВЕТИТЕ ЗА ВЫШЕ

-1

Решение

Вам нужно использовать decbin () для преобразования целого числа в двоичное.

http://php.net/manual/en/function.decbin.php

введите описание изображения здесь

3

Другие решения

Мой 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);
}
2