Conversion binaire to entier ascii
sofarsogood
Messages postés
3
Statut
Membre
-
Utilisateur anonyme -
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
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:
- Conversion binaire to entier ascii
- Code ascii - Guide
- Binaire - Guide
- Qwerty to azerty - Guide
- Mb to mo ✓ - Forum Matériel & Système
- Conversion mb en mo - Forum Matériel & Système
2 réponses
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)/
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)/
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.
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.
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.
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.