Convertire numero decimale in binario

Lui199909

Nuovo Utente
1 Mag 2014
15
0
0
25
Asti
PHP:
<?php
for($i=0;$i<=10;$i++){
echo $i.'</br>';
}
?>
E' possibile assegnare a una variabile il valore 0,1,2,3,4,5,6,7,8,9,10 ovvero il risultato del ciclo for? se si come ?
Grazie mille :)
 
No... :( allora in pratica ho fatto un script simile alla funzione per trasformare un numero in binario...
PHP:
<?php
function ToBin($n){
do{
$r= floor($n)%2; //calcolo il resto
$n= floor($n)/2; //divido x 2
echo $r.' ';// stampo il resto
}while($n>0.5);
}
ToBin(17); //richiamo la funzione e indico il valore della variabile $n da trasformare
?>

Solo che mi stampa il binario al contrario...quindi mi chiedevo se fosse possibile assegnare il risultato ad una variabile e poi manipolarla per girarla...
Grazie del supporto ;)
 
Ciao, potresti popolare nel ciclo un array e stamparlo usando array_reverse().
PHP:
function ToBin($n) {
    $a = array();
    do {
        $r = floor($n) % 2; //calcolo il resto
        $n = floor($n) / 2; //divido x 2
        $a[] = $r;
    } while ($n > 0.5);
    echo implode(" ", array_reverse($a));
}
 
PHP:
function ToBin($n) {
    $a = array();
    do {
        $r = floor($n) % 2; //calcolo il resto
        $n = floor($n) / 2; //divido x 2
        $a[] = $r;
    } while ($n > 0.5);
$result=implode("",array_reverse($a));
$result = substr("00000000",0,8 - strlen($result)) . $result;
Echo $result;
}  
$n = 8;
ToBin($n);
Così si ottiene il numero a 8 bit!
 
Ma sei sempre tu Lui Bardella?
Comunque se non hai capito questa riga di codice ecco la spiegazione:
PHP:
    echo implode(" ", array_reverse($a));
echo -> stampa a video
implode -> Unisce tutti gli elementi di un array in una stringa in questo caso separati da uno spazio.
array_reverse -> ritorna un array con tutti gli elementi dell'array $a ma in ordine contrario.

Quindi in pratica prima inverte l'ordine dell'array, poi unisce tutti i valori del "nuovo array" separati da uno spazio e poi stampa a video la stringa risultante.
 
Perfetto ;) grazie mille !
Si sono io perché mi ero registrato precedentemente con il profilo fb dal telefono e poi senza ricordarmi mi sono registrato dal Mac...
 
ciao
scusa prima non avevo capito (e forse nemmeno ora)
vuoi trasfornmare un numero decimale in numero binario?
se si perchè fai tutto quell'ambaradan?
PHP:
<?php
$dec=2789;
$binario=base_convert($dec,10,2);//questo trasforma il decimale in binario
var_dump($binario);
?>
output
string(12) "101011100101"
volendo lo puoi trasformare in ottale o esadecimale
base_convert($dec,10,8)
base_convert($dec,10,16)
o il contrario
base_convert(numero,base del numero,base in cui trasformare)
 
Quello che volevo fare è trasformare un numero dec2bin ma non volevo usare la funzione base_converter o decbin!
Grazie comunque ;)
 

Discussioni simili