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 :

BCD to ASCII en C++


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 77
    Par défaut BCD to ASCII en C++
    Bonjour,

    J'aimerais convertir du BCD en ASCII en C++, mais je ne sais pas comment faire. Après avoir fouiller un peu sur le net, je n'ai pas trouvé grand chose expliquant concretement comment s'y prendre.

    Je sais que je doit ajouter 0x30 à chaque caractère mais je ne connait pas l'algo permettant de faire cela.

    Merci d'avance pour votre aide !

    PS: Je doit le coder en C++ et en faire ensuite un executable.

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    ben si t'as 30 a ajouter, tu peux faire une fonction...ou tu peux coder la table de vérité...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char BCD_to_ASCII(unsigned short value)
    {
         return(value + 0x30);
    }

  3. #3
    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
    Citation Envoyé par Versace31 Voir le message
    Je sais que je doit ajouter 0x30 à chaque caractère mais je ne connait pas l'algo permettant de faire cela.
    Heu !! l'addition ?

    Plus sérieusement,
    autant que je me rappelle, le BCD code un nombre décimal de 2 digits sur 1 octet

    J'ai juste un problème avec ton énoncé c'est que le code ASCII est prévu pour representer un seul caractère et un nombre BCD représente 2 digits décimaux. Il va donc y avoir un problème de place.
    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
    .

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 77
    Par défaut
    Plus précisement, mon problème est le suivant : je doit vérifier une programmation en comparant divers champs, comme ci dessous.

    Produit : 140E ....
    Référence : 31343045 140E


    Comme vous pouvez le constater, la programation est bonne, le seul problème c'est que pour la référence, c'est de l'ASCII alors que pour le produit non.

    On m'as donc conseiller de créer un petit executable dans lequel je dois transformer du BCB en ASCII.

    Par ailleurs, dsl si le vocabulaire ne correspond pas tout à fait, c'est dur de débuter en informatique ^^

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    Plus précisement, mon problème est le suivant : je doit vérifier une programmation en comparant divers champs, comme ci dessous.

    Produit : 140E ....
    Référence : 31343045 140E

    Comme vous pouvez le constater, la programation est bonne
    je comprends pas ce que tu racontes...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 77
    Par défaut
    je comprends pas ce que tu racontes...
    J'ai un logciel qui compare chaque octet d'un fichier binaire par rapport à un autre fichier binaire de référence.
    J'ai un fichier daitaillant le mapping de ma mémoire.

    Le logiciel me genère esnuite un fichier html dans lequel est racapitulé la comparaison des fichiers binaires.

    Pour chaque champs, il m'indique la valeur contenue dans le binaire de référence, et dans le binaire de mon produit, de la façon suivante:

    Produit : 140E ....
    Référence : 31343045 140E


    Dans la première partie, on retrouve la valeur de chaque octet (en ASCII), dans le seconde son équivalent.

    Le bug, c'est que pour mon produit, le 140E est considéré comme de l'ASCII, alors que ce n'est pas sencé être de l'ASCII.

    Solution trouvée : transformer le 140E en son équivalent ASCII à l'aide d'un petit executable.
    140E --> 31343045

    C'est cela que je cherche à faire, un programme qui me permette de transformer le 140E en son équivalent ASCII, c'est à dire 31343045, et que cela fonctionne avec chaque valeur.

    Donc pour y arriver j'ai pensé ajouter 0x30 à chaque octet, mais je ne suis pas sur que cela fonctionne, et je ne sais pas comment faire.

  7. #7
    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
    OK, alors ton problème n'a rien à voir avec du BCD, le BCD, c'est autre chose, voir ici : http://fr.wikipedia.org/wiki/Binary_coded_decimal

    Ton problème est un bête problème de transformation de chaine de caractères : transformer une chaine de caractères "140E" vers son équivalent code ASCII écrit en hexadécimal "31343045"

    Propose du code et on t'aidera à debugger
    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
    .

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 77
    Par défaut
    OK, alors ton problème n'a rien à voir avec du BCD
    Ton problème est un bête problème de transformation de chaine de caractères
    Ah ok, dsl alors Je me repanche sur la question et j'essaie de faire un boup de code, merci.

Discussions similaires

  1. Convertisseur BCD ASCII et inversement
    Par Battoss dans le forum C
    Réponses: 0
    Dernier message: 26/11/2011, 21h26
  2. Hex BCD ASCII
    Par sali lala dans le forum C++
    Réponses: 3
    Dernier message: 11/12/2009, 11h01
  3. Code ASCII du symbole Euro
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/04/2007, 01h27
  4. Conversion binaire -> ASCII
    Par will13013 dans le forum C
    Réponses: 8
    Dernier message: 08/01/2003, 04h12
  5. exporter la structure d'une base Sybase en ascii
    Par Jean-Cyp dans le forum Sybase
    Réponses: 5
    Dernier message: 05/11/2002, 16h15

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