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

Bibliothèque standard C Discussion :

Problème de conversion !


Sujet :

Bibliothèque standard C

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut Problème de conversion !
    Hello !

    Je sais pas si c'est la fatigue, mais là je ne trouve pas de solution simple à mon problème...

    Je calcul un CRC qui est de type unsigned int.

    Je veux simplement enregistrer ce CRC dans un buffer.
    Comment convertir simplement ce nombre en donnée binaires brutes ?

    Je m'explique... imaginons que mon CRC = 60468, ceci équivaut à 0xec34 en hexa.

    Comment facilement ajouter à une chaîne les caractères ascii 0xec et 0x34 ?

    Merci d'avance pour votre aide et votre patience !

    Pizi

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int crc 0xec34;
    char buffer[32];
       sprintf(buffer, "%.4x", crc);
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    Hello,

    Merci pour ta réponse. Mais je suis aussi arrivé là... malheureusement ceci crée une chaîne contenant la valeur hexadécimale. Moi je veux une chaîne qui est formée par cette valeur...

    Je m'explique : ec34 doit en fait être deux char, EC=symbole ASCII 0xEC et 34=sybole ASCII 0x34.

    Le but étant de stocker l'entier au format binaire le plus simple qu'il soit...
    Ma chaîne doit contenir 0xec,0x34 (deux caractères)

    J'ai de la peine à expliquer le problème ! Vois-tu où je veux en venir ?

    Salutations

    Pizi

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Gio,
    Citation Envoyé par piziwate Voir le message
    Hello,

    Merci pour ta réponse. Mais je suis aussi arrivé là... malheureusement ceci crée une chaîne contenant la valeur hexadécimale. Moi je veux une chaîne qui est formée par cette valeur...

    Je m'explique : ec34 doit en fait être deux char, EC=symbole ASCII 0xEC et 34=sybole ASCII 0x34.

    Le but étant de stocker l'entier au format binaire le plus simple qu'il soit...
    Ma chaîne doit contenir 0xec,0x34 (deux caractères)

    J'ai de la peine à expliquer le problème ! Vois-tu où je veux en venir ?

    Salutations

    Pizi
    Le format le plus simple est de le laisser sous forme de unsigned int.

    Pourquoi veux-tu faire autre chose ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    En fait je créer un tampon avant de l'envoyer sur un socket. Je dois stocker le CRC du paquet dans sa forme int... mais je cherche un moyen d'ajouter la valeur entière au tampon...

    J'ai fini par trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    unsigned int x = crc(&data);
    pheader += sprintf(pheader, "%c%c",(char)(x >> 8 & 0xFF),(char)(x & 0xFF));
    Mais je suis sûre qu'il y a plus simple !!!

    Merci de ton aide en tout cas ! A+

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    il y a surtout que c'est pas bon,

    Imagine un crc qui vaut 0x0065 avec ce code (celui que tu as écrit)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char pheader[32];
    int crc = 0x0065;
    sprintf(pheader, "%c%c",(char)(x >> 8 & 0xFF),(char)(x & 0xFF));
    En sortie, tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pheader[0] = 0
    pheader[1] = 0x65 = 'a'
    pheader[2] = 0
    Si tu écrits ta chaine avec printf, c'est une chaine vide puisqu'elle s'arrête au premier caractère qui vaut 0.

    Autre remarque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pheader += sprintf(pheader, "%c%c",(char)(x >> 8 & 0xFF),(char)(x & 0xFF));
    n'est pas la bonne manière pour concatener une chaine, c'est strcat() qu'il faut utiliser.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de conversion de dimension dans BUSINESS OBJECT
    Par greatmaster1971 dans le forum Deski
    Réponses: 4
    Dernier message: 28/04/2014, 13h15
  2. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  3. Problème de conversion 3DS->.X
    Par JBernn dans le forum DirectX
    Réponses: 5
    Dernier message: 08/04/2004, 19h08
  4. Problème de conversion unicode
    Par djmalo dans le forum C
    Réponses: 5
    Dernier message: 09/03/2004, 11h48
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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