Например:
$result = func(14);
Значение $result должно быть:
$result
array(1,1,1,0)
Как реализовать это func?
func
decbin приведет к получению двоичной строки:
decbin
echo decbin(14); # outputs "1110" array_map('intval', str_split(decbin(14))) # acomplishes the full conversion
function func($number) { return str_split(decbin($number)); }
for($i = 4; $i > 0; $i++){ array[4-$i] = (int)($x / pow(2,$i); $x -= (int)($x / pow(2,$i); }
... это бы сработало. Перед этим вы можете проверить, насколько большим должен быть массив и с какого значения $ i начать.
Вы можете разделить его на 2 и сохранить остаток в обратном порядке ...
число = 14
14% 2 = 0 число = 14/2 = 7
7% 2 = 1 число = 7/2 = 3
3% 2 = 1 число = 3/2 = 1
1% 2 = 1 число = 1/2 = 0
<?php function int_to_bitarray($int) { if (!is_int($int)) { throw new Exception("Not integer"); } return str_split(decbin($int)); } $result = int_to_bitarray(14); print_r($result);
Выход:
Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 0 )