generer un code sur 12 bits

generer un code sur 12 bits - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 01-05-2015 à 12:23:31    

Bonjour,
je cherche un truc très simple mais j en ai marre de me gratter la tete...
 
Je veux générer toutes les combinaison possibles d'un code sur 12 bits, ou chaque bit prendre pour valeur 0 ou F.
je suis sur qu'en bash on peut faire ca en 2 sec mais je ne vois pas comment générer toutes possibilités...
 
 
merci !!


---------------
=-Galerie Photo=- // Tekilaz :: Trop bon, Trop con... // FEEDB4CK
Reply

Marsh Posté le 01-05-2015 à 12:23:31   

Reply

Marsh Posté le 01-05-2015 à 13:07:58    

Bonjour,
 
En gros tu te demande comment compter de 0 à 4095 en binaire?
:ouch:


Message édité par Steve2 le 01-05-2015 à 13:09:33
Reply

Marsh Posté le 01-05-2015 à 20:18:28    

euh bah pas forcément non
en faite meme si chaque bit est de 0 à F, il ne faut pas voir ca en haxa.
Les seules possibilié sont 0 OU F pour chaque bit
Si il n y avait que 2 bit cela ferait
00
0F
0F
FF
 
sauf que la y en a 12 :D
 
mais oui ca fait bien 4096 du coup je pense...


Message édité par tekilaz le 01-05-2015 à 20:19:25

---------------
=-Galerie Photo=- // Tekilaz :: Trop bon, Trop con... // FEEDB4CK
Reply

Marsh Posté le 01-05-2015 à 20:34:34    

un truc comme ca quoi
for i in `seq 1 4096` ; do echo "obase=2;"$i | bc ; done
mais avec de F, et faut que ce soit affiché sur 12 bits
donc avec un sed et apres je sais pas, un print peut etre?


Message édité par tekilaz le 01-05-2015 à 20:37:53

---------------
=-Galerie Photo=- // Tekilaz :: Trop bon, Trop con... // FEEDB4CK
Reply

Marsh Posté le 02-05-2015 à 23:02:44    

est-ce que c'est vraiment des bits, ou des nibbles? (groupes de quatre bits)
car ça serait vite fait
000
00F
0F0
0FF
F00
F0F
FF0
FFF

 

sinon ton truc c'est parfait :
for i in `seq 1 4096` ; do echo "obase=2;"$i | bc ; done

 

pas besoin d'utiliser un sed, la commande "tr" est parfaite pour remplacer un caractère par un autre.
erreur "off by one" aussi, il faut un `seq 0 4095`

 

enfin.. c'est loin d'être parfait puisque ça spawne au moins 4096 8192 processus :D et on voit bien que ça rame,  j'ai essayé avec 16777216 c'est l'hécatombe.


Message édité par blazkowicz le 02-05-2015 à 23:07:54
Reply

Marsh Posté le 02-05-2015 à 23:15:51    

ah oui, il manque les zéros à gauche.
ben alors fait ça en C, il n'y a rien besoin d'autre que d'inclure stdio.h et faire un printf ou des putchar..

Reply

Marsh Posté le 04-05-2015 à 09:52:54    

Ouep bah bah j ai finalement réussi via du gros bidouillage mais ça fonctionne :) Merci
 
en gros, boucle for avec conversion binaire, bourrage des 0 manquant pour faire 12 bits, puis remplacement du 1 par un F.
 
 
 
 


---------------
=-Galerie Photo=- // Tekilaz :: Trop bon, Trop con... // FEEDB4CK
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed