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 :

caractères hexadecimal en C


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut caractères hexadecimal en C
    Bonjour,
    je souhaite effectuer un test d'envoi des caractères sur une COM sous linux.
    Pour celà je connais les caractères hexadecimaux à envoyer.

    01 01 FE 0C 00 00 00 00 00 00 00 00 00 87 A9 CB
    ED 03 00 0A 00 03 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 20 6F

    Pour celà, j'ai sotcké cet ensemble dans une chaine:
    char test[512]="01 01 FE 0C 00 00 00 00 00 00 00 00 00 87 A9 CB
    ED 03 00 0A 00 03 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 20 6F";

    je souhaiterai savoir comment faire pour envoyer de transformer l'ensemble en binaire, du genre:
    je veux envoyer 01 en binaire 01 en binaire FE en binaire . pour résumer par le code hexdécimal.

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    met juste 0x devant tous tes caractères, ils seront interprétés en hexa en tant que nombre.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 462
    Par défaut
    Citation Envoyé par Ubuntu66 Voir le message
    je souhaiterai savoir comment faire pour envoyer de transformer l'ensemble en binaire, du genre : je veux envoyer 01 en binaire 01 en binaire FE en binaire . pour résumer par le code hexdécimal.
    Tu prends la valeur du premier chiffre, tu la multiplie par 16, tu ajoutes la valeur du deuxième et tu envoies le résultat.

    Mais comme le dit Haraelendil, il vaut mieux les mettre au propre directement dans ton code en les écrivant sous la forme « 0x01, 0x25, 0x33, 0xaf, 0xbd… ». Si tu travailles sous Linux, tu peux directement utiliser sed pour te traduire tout ton bloc sans te fatiguer. Ensuite, tu copies-colles le résultat dans ton code et c'est fini.

  4. #4
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    en plus compact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char test[512]="\x01\x01\xFE\x0C\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\xA9\xCB"
                   "\xED\x03\x00\x0A\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
                   "\x00\x00\x00\x20\x6F";

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 91
    Par défaut
    Bonjour,

    Une autre solution serait comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char test[512]={0x01,0x01,0xFE,0x0C,....}

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Réponses: 8
    Dernier message: 23/04/2009, 17h57
  3. Réponses: 7
    Dernier message: 13/04/2007, 13h38
  4. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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