[convertion confuse]

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!

12 réponses

  1. Modérateur
    Bonjour,

    En quel langage?
    0
    1. Modérateur
      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
      1. ok merci, je vais voir ce que je peux faire avec ca.
        0
        1. Modérateur
          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
          1. Modérateur
            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
            1. Modérateur
              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
              1. Modérateur
                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
                1. Modérateur
                  na!
                  0
                  1. Modérateur
                    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
                  2. Modérateur
                    @lami20jTu 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
                2. 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
                  1. Modérateur
                    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
                3. Modérateur
                  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
                  1. heuu...html sa te vas?!

                    je suis un innicié il ne faut pa trop m'en demander...mais je veux bien apprendre:)!
                    0
                4. 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