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

 C Discussion :

conversion d'un ascii en binaire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 165
    Par défaut conversion d'un ascii en binaire
    Bonjour,

    je souhaite convertir un caractère ascii en un nombre binaire (qui sera sous forme de char *).
    J'aurais aimé avoir des conseils pour le faire.
    Je pensais d'abord convertir le char en int, faire la conversion, puis retransformer mon binaire en char *.
    Est ce qu'il y a une facon plus optimiser pour se faire?
    (je n'ai rien codé pour le moment, je réfléchis sur la facon de faire avant de me lancer)

    Bonne journée

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    je souhaite convertir un caractère ascii en un nombre binaire (qui sera sous forme de char *).
    Ce que tu ecris n'a pas vraiment de sens. Il n'y a aucune conversion a faire. Un char est deja un entier (qui correspond au code ASCII d'un caractere si ta machine utilise l'ASCII). En memoire, les variables sont deja representees en binaire.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 165
    Par défaut
    ce que je veux dire cest que: 'a' vaut 97 dans la table ascii.
    Je veux obtenir 97 en binaire et l'avoir dans un char *

    tu vois ce que je veux dire?

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par m0ul3sh0t Voir le message
    ce que je veux dire cest que: 'a' vaut 97 dans la table ascii.
    Je veux obtenir 97 en binaire et l'avoir dans un char *
    Par char *, tu veux dire chaine de caractere ? C'est sprintf() qu'il te faut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char a = 'a';
    char buffer[20];
    ...
    sprintf(buffer, "%d", a);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 165
    Par défaut
    en fait je ne veux pas afficher le caractere en binaire mais recuperer sa valeur pour pouvoir la reutiliser par la suite

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Bon, il faut eclaicir le vocabulaire.
    Binaire, c'est une representation en base 2 (des 0 et des 1). Rarement utile.
    Un caractere est un entier qui peut avoir les valeurs 0 a 255 (ou -127 a 128 s'il est signe). Ces valeurs sont utilisees pour faire une table de correspondance entre un nombre et un caractere dans un alphabet (par exemple, la table ASCII).
    Un char * est un pointeur vers une variable de type char. Une chaine de caractere est un tableau de caracteres termine par '\0'. Le nom de ce tableau est aussi l'adresse du premier element, et a le type char *.

    En utilisant le vocabulaire ci-dessus, explique ce que tu veux faire exactement.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 15
    Par défaut
    Comme l'a dit DaZumba, en mémoire toutes les données sont déjà représentées en binaire.
    Donc je pense que tu veux récupérer cette représentation binaire de ton caractère?
    Essaye un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    char caractere = 'A';
    char * ptCaractere;
    int valeurMemoire = 0;
    //ton pointeur pointe sur l'adresse de l'entier qui contiendra la valeur 'binaire'
    ptCaractere = (char *)&valeurMemoire;
    ptCaractere = caractere ;
    //ici tu peux utiliser valeurMemoire 
    ...
    la ligne 'ptCaractere = caractere ;' peut générer un warning, c'est juste une piste que je te donne à creuser!!

Discussions similaires

  1. Conversion hexadécimal en ascii
    Par andrianiaina dans le forum C
    Réponses: 12
    Dernier message: 08/08/2006, 07h21
  2. conversion UTF8 vers ASCII en C
    Par znarf dans le forum C
    Réponses: 2
    Dernier message: 05/07/2006, 13h55
  3. Réponses: 8
    Dernier message: 19/03/2006, 23h56
  4. Conversion ascii=> hexa=>binaire
    Par grunk dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 18h45
  5. code ascii en binaire -> caractere
    Par mzt.insat dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 19/04/2005, 15h43

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