N-PN White-Hat Project
[PHP | AIDE] Binary to Decimal - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27)
+--- Sujet : [PHP | AIDE] Binary to Decimal (/showthread.php?tid=2760)



[PHP | AIDE] Binary to Decimal - sakiir - 27-02-2013

Salut !
depuis quelque temps , en cour, on fais la numeration .
Pour m'entrainer je veux faire quelques programmes et j'ai commencé par binaire <-> Decimal

donc voici mon code , logiquement ca devrait fonctionner mais ca ne me donne pas les bonne valeur.. :')


http://pastebin.com/3TVuapgP

Merci


RE: [PHP | AIDE] Binary to Decimal - InstinctHack - 27-02-2013

Code PHP :

$binaire=array(1,0,1,0,1,0);
$dec=0;
foreach(array_reverse($binaire) as $key=>$value)
{
    $dec+=$value*pow(2,$key);
}
echo $dec;
 



RE: [PHP | AIDE] Binary to Decimal - supersnail - 27-02-2013

T'as quoi comme résultat ? 5 ?

Imo ton problème c'est un problème d'endianness (et faudrait faire
Code :
$dec = $dec + $binaire[$i] * pow(2,$len - $i);
pour régler le problème j'pense)

Edit: en fait faut pas de +1, manger du plutonium ça fait bobo à la tête :')


RE: [PHP | AIDE] Binary to Decimal - sakiir - 27-02-2013

ca me donne 4 pour 1010 et 10 pour 0101
ca devrait me donner 5 pour 0101 et 10 pour 1010 :')

Je test vos codes merci Smile

Khaled: Ton code ne donne pas le bon resultat , merci quand meme Smile


RE: [PHP | AIDE] Binary to Decimal - Hypnoze57 - 28-02-2013

Ou si tu veux te simplifier la vie:
Code PHP :
echo bindec('1010'); 



RE: [PHP | AIDE] Binary to Decimal - sakiir - 28-02-2013

(28-02-2013, 16h32)Hypnoze57 a écrit : Ou si tu veux te simplifier la vie:
Code PHP :
echo bindec('1010'); 

Je connais cette fonction .. mais le but était de la refaire :')


RE: [PHP | AIDE] Binary to Decimal - balis - 01-03-2013

Sakkir je sais pas si c'est la même chose que en C mais un moment tu fait le test tant que $i != 0 donc tu auras accés a la valeur 0 , 1 , 0 et pas le dernier vu que tu demande != 0 après je peut me tromper Big Grin

EDIT : met un >= et sa marche a la place != ( sa revient a la même chose xD )
et sa marche Big Grin
<code>
$binaire = array(1,0,0,0);
$len = count($binaire) - 1;
$dec = 0;
for($i=$len;$i >= 0;$i--)
{
echo $dec.$i.'</br>';
$dec = $dec + $binaire[$i] * pow(2,$len - $i);
}

echo $dec;
</code>