Conversion binaire to entier ascii

sofarsogood Messages postés 3 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

dans le cadre d'un programme en C++ j'ai plusieurs fois besoin de faire une transformation un peu compliqué et je sèche :
j'ai d'un côté un nombre binaire numérique non signé transmi avec l'octet de poids faible en premier (format Intel)

et de l'autre côté un entier codé en ASCII poids fort en premier
La taille de la valeur de l'entier (avant encodage) est prédéfinie et peut être 8, 16, 32 ou 64 bits.
La valeur peut être signée ou non, dans le cas d’une valeur signée, la méthode du complément à deux est utilisée.
Exemple : l’entier de valeur décimale 11643 codé selon le format ‘entier 16 bits’ prendra la forme ASCII ‘2D7B’ soit la suite d’octets : 50 (0x32) – 68 (0x44) – 55 (0x37) – 66 ( 0x42).

voila je dois faire la conversion dans les deux sens ...

Je pensais pour l'instant faire une conversion HEXA -> ASCII puis ASCII->binaire et apres inverser l'ordre poids faible poids fort...mais j'y arrive pas trop.

Je suis sur Windows et j'utilise Visual C++ 2003

Merci d'avance
A voir également:

2 réponses

Utilisateur anonyme
 
Bonjour,

Je ne comprends pas trop. En fait ton problème se résume à inverser l'ordre de l'octet de poids fort et de poids faible car finalement, ascii, binaire et hexa ne sont que des formats pour représenter différemment la valeur d'un octet. A priori, tu devrais pouvoir t'en tirer en passant par deux tampons découpés en octets (par exemple : char tampon[ 8 ]; te donne 8 octets que tu peux adresser indépendemment les uns des autres). Comme ça tu peux interchanger ce que tu veux comme tu le veux (inverser le mot ou le double mot de poids fort avec le faible)/
0
sofarsogood Messages postés 3 Statut Membre
 
Merci d'avoir répondu.

Je comprends pas pourquoi tu dis qu'une conversion n'est pas nécessaire, un chiffre binaire n'est pas la même chose qu'un chiffre codé en hexa..
J'ai du mal à saisir l'utilisation du char tampon []...tu pourrais me donner des détails je m'en suis jamais servi.
Merci encore.
0
Utilisateur anonyme
 
En fait, si on prend la valeur décimale 32,

en binaire, ça donne 0010 0000
en hexa : 0A
en ascii, c'est le caractère espace.

C'est la même chose mais vu différemment.

Pour le char tampon[ 8 ], je pensais à un tableau de 8 caractères (codés sur un octet pour avoir un maximum de 64 bits) facilement manipulables avec leurs indices. Ce n'est peut être pas approprié dans ton cas selon la manière dont se présentent tes données.
0
Utilisateur anonyme > Utilisateur anonyme
 
Faute de frappe, en hexa, 32 décimal donne 20.
0