Accueil > Forum > > > > [ c++ ] pb de convertion hexa
[ c++ ] pb de convertion hexa
samedi 14 mai 2005 à 14:24:09 |
[ c++ ] pb de convertion hexa

devoX
|
Bonjour a tous, j'ai un petit soucis, je vous explique: je dispose d'un text dans un buffer buf et je desire le metre dans un autre buffer buf2 mais en le transformant en hexa. j'ai creer une fonction convHexa : void convHexa ( car buf, int size ) { buf2 =new char [size]; int i; sprintf( buf2 ,"%02x, buf ); }
le probleme qui se pose c'est que buf2 contient seulement le code du premier caractere de buf. J'ai aussi essayer:
void convHexa ( char buf, int size ) { buf2 =new char [size]; int i; for(i=0 ; i<size ; i++) sprintf( buf2[i] ,"%02x, buf [i]); }
mais la j'ai une erreure que je n'arrive pas a resoudre : subsript reqiere array or pointer type et sprintf can't convert a char to char*
Merci d'avance de votre aide.
|
|
samedi 14 mai 2005 à 14:40:31 |
Re : [ c++ ] pb de convertion hexa

vecchio56
|
Pour transformer de bianaire en Hexa, pas besoin de sprintf. dans buf tu as un caractère, sur deux octets, tu as donc juste à faire buf2[0] = (buf & 0xF); if(buf2[0] > 9) buf2[0] += 'A' - 10; // lettre else buf2[0] += '0'; // chiffre
buf2[1] = (buf & 0xF0) >> 1; if(buf2[1] > 9) buf2[1] += 'A' - 10; else buf2[1] += '0';
|
|
samedi 14 mai 2005 à 17:10:56 |
Re : [ c++ ] pb de convertion hexa

Joky
|
Et bé en faite ç'est normal aussi, ce que tu passes en paramètre de ta fonction c'est un caractère : char buf Heuresement qu'il ne t'en copie un, sinon C++, ben la honte hein J'aurais été le dire à sa mere moi void Aurevoir( void ); //Bonne journée
|
|
samedi 14 mai 2005 à 17:32:51 |
Re : [ c++ ] pb de convertion hexa

vecchio56
|
Oui mais un caractère est codé sur 1 octet, donc en hexa ca fait deux chiffre (ou lettres)
|
|
samedi 14 mai 2005 à 18:26:51 |
Re : [ c++ ] pb de convertion hexa

Joky
|
Oki oki jprend la porte mdr void Aurevoir( void ); //Bonne journée
|
|
samedi 14 mai 2005 à 18:47:26 |
Re : [ c++ ] pb de convertion hexa

devoX
|
Merci pour votre aide mais je ne comprend vraiment pas se que tu as fais vecchio56.... Peu me dire rapidement en francais ( algo )se que ca fais ? Merci :)
|
|
samedi 14 mai 2005 à 19:28:24 |
Re : [ c++ ] pb de convertion hexa

vecchio56
|
Comme je l'ai dit un carcactère fait 2 symboles en hexa (de 00h à FFh)
Le premier, tu le récupères avec le masque 0x0F. C'est un nombre entre0 et 15, et toi tu veux quelque chose entre 0 et 9 ou A et B. Si c'estentre 0 et 9, tu ajoutes juste '0' (pour obtenir le caractèreimprimable correspondant). Si c'est une lettre (entre 10 et 15), tuenleve 10 (le nombre est entre 0 et 5) et tu ajoutes 'A' (caractèreentre 'A' et 'A'+5='F'). Pour le deuxième caractère c'est pareil, sauf que le masque est 0xF0.Pour obtenir la bonne valeur, il faut décaler à droite, de 4 et pas de1 comme je l'avais dit J'ai aussi inversé poids fort et faible, ce qui donne finalement:
buf2[0] = (buf & 0xF0) >> 4; if(buf2[0] > 9) buf2[0] += 'A' - 10; else buf2[0] += '0';
buf2[1] = (buf & 0xF); if(buf2[1] > 9) buf2[1] += 'A' - 10; // lettre else buf2[1] += '0'; // chiffre
buf2[2] = 0;
Tu as conpris?
|
|
samedi 14 mai 2005 à 19:50:07 |
Re : [ c++ ] pb de convertion hexa

devoX
|
Oui j'a pigé merci ;) par contre je trouve ca vraiment de devoir faire toute ces manip sur chaque "demi-octet"... es tu sur qu'il n'y a pas plus simple a base de sprintf.... car en faite j'ai reussit a faire cette convertion tres facilement en mode console....mais en passant mon code pour l'interface...les chose se complique. Merci pour ton aide, si il n'y a pas d'autre solution je ferais avec la tienne ;)
|
|
samedi 14 mai 2005 à 21:54:35 |
Re : [ c++ ] pb de convertion hexa

vecchio56
|
Oui, c'est plus simple avec sprintf mais aussi sprintf fera beaucoupplus de boulot que nécessaire, a commencer par l'analyse de la chaineque tu lui passe. J'aime autant voir ces lignes dans mon code plutotqu'un sprintf Mais j'ai testé, le premier code que tu as mis avec sprintf marche aussi
|
|
samedi 14 mai 2005 à 23:10:38 |
Re : [ c++ ] pb de convertion hexa

devoX
|
bin non c'est bien ca le pb le code que j'ai mis marche pas....il marche que pour 1 caractere...
|
|
Cette discussion est classée dans : int, char, size, buf, buf2
Répondre à ce message
Sujets en rapport avec ce message
problème de pointeur sur char (SUPER HYPER IMPORTANT -> juste pour moi...je supose) [ par levraipig ]
bonjour à tous, voila moi j'ai un p'ti problème plutot embêtant.... je dois créer un class qui gère les chaines de caractères (ne me demander pas pou
problème de pointeur sur char (SUPER HYPER IMPORTANT -> juste pour moi...je supose) [ par levraipig ]
bonjour à tous, voila moi j'ai un p'ti problème plutot embêtant.... je dois créer un class qui gère les chaines de caractères (ne me demander pas pou
Objet : ajout et taille [ par scorpion077 ]
Bonjour,j'essai de corriger un DS portant sur la POO. voici mon code:--------------------------------------------------------------------------------#
du C au C++ [ par nidhaletec ]
si quelqu un m aide à convertir cette fonktion en C++ ; c écrit en C ;void remplacer (char *filename, char *str, char *occ){ FILE *f = fopen(filen
Afficher un Int dans une ListBox ? [ par KroOon ]
Bonjour alors je vous explique mon petit Probléme je débute en Programmation Pour lla Creation d' Applications Windows.Je souhaiterais A partir d' un
Recréer la fonction strstr [ par qubs ]
Salut, J'aimerais recoder la fonction strstr mais je n'arrive pas a aboutir et a comprendre le fonctionnement, j'aimerais bien un coup de main svp. =
liberation de memoire [ par bobaben ]
bonjour, je suis debutant en c++. j'ai un petit souci de liberation de memoire. je voudrai savoir comment peut-on desallouer "new" qui est dans une
matrice de cooccurrence [ par ulysse00 ]
salut tout le monde , j'ai un code avec c++ qui calcule matrice de cooccurrence mais je n'arrive pas à comprendre le code voila le code void textu
[C++] 2 char => 1 int [ par Apaachee ]
Bonjour, Je possède une opération : 1+99 que je place dans un tableau de char : coutcin>>exp; //La variable exp contient l'opération
Demande l'aide des meilleurs ! ;) [ par jekburn ]
Bonjour, Le programme suivant devrait d'en un futur proche sortir et enregistrer toutes les adresses mail existantes. Mais là, la fatigue surement !
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|