Come cambiare il decimale in binario e ripristinare i suoi valori di bit in un array?
Domanda
Ad esempio:
$result = func(14);
Il $ risultato
dovrebbe essere:
array(1,1,1,0)
Come implementare questo func
?
Soluzione
function func($number) {
return str_split(decbin($number));
}
Altri suggerimenti
decbin
produrrebbe una stringa binaria:
echo decbin(14); # outputs "1110"
array_map('intval', str_split(decbin(14))) # acomplishes the full conversion
<?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);
Output:
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 0
)
Puoi continuare a dividerlo per 2 e conservare il resto al contrario ...
Numero = 14
14% 2 = 0 numero = 14/2 = 7
7% 2 = 1 numero = 7/2 = 3
3% 2 = 1 numero = 3/2 = 1
1% 2 = 1 numero = 1/2 = 0
for($i = 4; $i > 0; $i++){
array[4-$i] = (int)($x / pow(2,$i);
$x -= (int)($x / pow(2,$i);
}
... questo farebbe il trucco. In precedenza, è possibile verificare quanto deve essere grande l'array e con quale valore di $ i per iniziare.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow