IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Binaire to String?


Sujet :

Langage Java

  1. #1
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut Binaire to String?
    Bonjour les amis...
    Je cherche un code qui me permet de faire la conversion d'une chaine binaire en String (Binaire to String), j'ai réussi à faire String to Binaire mais le sens contraire non...
    Voici mon code pour String to binaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          String chaine="salut",chn="";
          Integer Ascii=chaine.hashCode();
          chn=Ascii.toBinaryString(Ascii);
    aidez moi et merci

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    la fonction hashCode renvoie bien un entier mais celui-ci ne représente pas de façon unique la String que tu as donnée en entrée (c'est à dire que plusieurs String peuvent donner le même hashCode), il n'est donc pas possible de retrouver la String d'origine à partir de ce hashCode.

    Pour représenter une String en binaire, le mieux est de passer par un tableau d'octets, puis pour chacun des octets, d'afficher sa valeur binaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       String s = "coucou";
       byte[] octets = s.getBytes(); //Tu peux aussi spécifier l'encoding de ta String
       for(int i=0; i<octets.length; i++){
    	System.out.println(Integer.toBinaryString(octets[i]));
       }

  3. #3
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut
    Et comment faire le contraire? (bite to string)

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Dans l'autre sens, il faut recréer une String:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s2 = new String(octets);

  5. #5
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut
    le problème est que je dois récupérer le mot binaire sous forme de string, alors il n'y a pas un truc pour gérer ce cas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String chaine="101010101...";

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Je ne comprend pas bien, ce que tu veux faire.

    Ce que je comprend correspond à la méthode donnée par Jidefix.

  7. #7
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ben la solution que je t'ai donnée te renvoie le mot binaire de chaque lettre, après si tu veux une chaine de caractère binaire représentant toute ta String de début, il suffit de les concaténer, un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String s = "coucou";
    String resultat = "";
       byte[] octets = s.getBytes(); //Tu peux aussi spécifier l'encoding de ta String
       for(int i=0; i<octets.length; i++){
    	resultat = resultat+Integer.toBinaryString(octets[i]));
       }
    Résultat est la traduction en binaire de la chaine "coucou"

  8. #8
    Membre très actif
    Inscrit en
    Avril 2008
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 173
    Par défaut
    Rebonjour
    je réexplique mon probleme, quand je transforme le string en binaire, je sauvegarde le resultat dans un fichier txt, donc quand je dois récupérer le mot binaire, il sera sous forme de chaine de caractere et non pas chaine de byte, alors comment faire la trasformation bianire to string d'une chaine de caractere!!!!!!!!!!!!!!!

  9. #9
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Tu peux par exemple, utiliser un séparateur de champ dans ton fichier texte de stockage, pour pouvoir retrouver facilement tes valeurs binaires.

    Ensuite pour chaque valeur binaire tu recrés le byte associé en utilisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    byte b = Byte.parseByte(val, 2);
    Ou tu stockes directement le résultat dans un tableau de byte, puis tu créés une String:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String result = new String(bytes);
    avec bytes le tableau de byte que tu as créés.

Discussions similaires

  1. Convertir du binaire en String ASCII
    Par ram-0000 dans le forum Langage
    Réponses: 11
    Dernier message: 04/04/2014, 17h53
  2. [VB6]écriture dans un fichier: mélange binaire string.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 28/12/2005, 12h29
  3. Réponses: 2
    Dernier message: 06/12/2005, 12h01
  4. Convertir un String en binaire
    Par Berns dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2005, 11h32
  5. Convertir un string en binaire
    Par TekP@f dans le forum ASP
    Réponses: 4
    Dernier message: 10/05/2005, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo