[convertion confuse]

Co2_^ -  
 Co2 -
lu!

voila j'ais éxécuté un XOR sur deux series de binaires et maintenant j'aimerais maitre se nombre:00000111 00011101 00001011 00011101 00000001 00001001 00010111 en decimal.

Est-ce possible?:s:s

ty!
A voir également:

12 réponses

kilian Messages postés 8854 Statut Modérateur 1 526
 
Bonjour,

En quel langage?
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

voilà ce que ça donne en kanji
#! /usr/bin/perl
#
use warnings;use strict;

sub bin2dec {
  return sprintf("%4.f",unpack("N",pack("B32",substr ( "0" x 32 . shift,-32))));
}

my $bin = '00000111 00011101 00001011 00011101 00000001 00001001 00010111';

foreach (split /\s+/,$bin){print "$_ = ",bin2dec($_),"\n"}
Résultat
lami20j@debian:~/bin/my_deb_perl$ perl bin2dec.pl
00000111 =    7
00011101 =   29
00001011 =   11
00011101 =   29
00000001 =    1
00001001 =    9
00010111 =   23
lami20j
0
Co2_^
 
ok merci, je vais voir ce que je peux faire avec ca.
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Et la version en python (qui, bien que brève, ne conteste pas l'élégance du kanji):
bin="00011101 00001011 00011101 00000001 00001001 0010111"
bin=bin.replace(" ", "")
print int(bin,2)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

un jour je vais commencer aussi avec python ;)

#! /usr/bin/perl
#
use warnings;use strict;

$_ = '00000111 00011101 00001011 00011101 00000001 00001001 00010111';

for(split){s/^/0b/;print eval,"\n"}
lami20j
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

petite statistique :D

lami20j@debian:~/bin/my_deb_perl$ cat vider
#! /usr/bin/perl
#
use warnings;use strict;

my $py ='bin=bin.replace(" ", "")print int(bin,2)';
my $pe = 'for(split){s/^/0b/;print eval,"\n"}';

print "nbr_char \$py = ", length($py),"\n";
print "nbr_char \$pe = ", length($pe),"\n";

lami20j@debian:~/bin/my_deb_perl$ perl vider
nbr_char $py = 40
nbr_char $pe = 35
lami20

P.S. En revanche si tu utilises à la place de bin (le nom de variable) une seule lettre tu as gagné :D
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Ma version des faits (après une petite correction):
prout@tourte:~/Desktop$ cat vider #!/usr/bin/python py ='print int(bin.replace(" ",""),2)' pe ='for(split){s/^/0b/;print eval,"\n"}' print "nb_char py = %d" % len(py) print "nb_char pe = %d" % len(pe) prout@tourte:~/Desktop$ python vider nb_char py = 32 nb_char pe = 34 
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
na!
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

tu as gagné? Félicitations!

Tu sais très bien que j'ai plaisanté.

En revanche tu es sûr du résultat?!
Bien sûr en me posant la même question.

Puisque d'après ce que je vois tu elimines les espaces en obtenant une longue chaîne de 0 et 1 et ensuite tu fais la conversion, tandis que mon script sépare en fonction d'espaces et convertit les petites entités en décimal.

lami20j
0
kilian Messages postés 8854 Statut Modérateur 1 526 > lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
 
Tu sais très bien que j'ai plaisanté.

Voui bien sûr ;-)

Je vois qu'on a pas eu la même démarche pour la conversion, mais voui en python, je supprime les espaces et je converti tout le binaire en décimal directement. Et ça devrait fonctionner vu le gros tas de chiffres qu'il me recrache :-)
0
Co2_^
 
un dernier renseignement,

mot1=01100110 01101111 01110010 01101101 01110101 01101100 01100101

mot2=01100011 01110010 01111001 01110000 01110100 01100101 01110010

XOR(mot1/mot2)=>00000111 00011101 00001011 00011101 00000001 00001001 00010111 ??????mon XOR est-il correct?

je ne trouve pa la formule pour le aire directement j'ais du me taper tout à la main, ce qui peut fausser les résultats!
0
kilian Messages postés 8854 Statut Modérateur 1 526
 
Salut,

Voici un petit code en python qui te permettra de faire ça:
#!/usr/bin/python

import sys
a="01100110 01101111 01110010 01101101 01110101 01101100 01100101"
b="01100011 01110010 01111001 01110000 01110100 01100101 01110010"

print a
print "xor"
print b
print "="
a=a.replace(" ","")
b=b.replace(" ","")

# Le xor
c=int(a,2) ^ int(b,2)

#Affichage binaire:

i=63
while i>=0:
        if c & (1<<i):
                sys.stdout.write("1")
        else:
                sys.stdout.write("0")
        if not i%8:
                sys.stdout.write(" ")
        i-=1

J'ai pas le temps de l'expliquer (ferai ça ce soir ou demain), j'espère qu'il est juste....
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Je crois qu'on doit revenir à ton problème. Tu t'es perdu dans les messages de kilian et moi, mais tu n'as toujours pas repondu à la question de kilian.

En quel langage?

lami20j
0
Co2
 
heuu...html sa te vas?!

je suis un innicié il ne faut pa trop m'en demander...mais je veux bien apprendre:)!
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

en ce cas je crois que tu dois commencer avec ça
comment debuter quel langage

et pour Xor regarde ici
https://fr.wikipedia.org/wiki/XOR

lami20j
0
Co2
 
ui docn tu as ma reponse language HTML !

sinon j'aimerais bien savoir me servir du logiciel python, en + je crois qu'il est sur mon ordi.
0