BinToHex
imenesoumaya
-
imene_soumaya Messages postés 6 Statut Membre -
imene_soumaya Messages postés 6 Statut Membre -
Bonjour,
slt, mon programme est en c++builder il convertis un nombre binaire en hexadécimale en passant de bin =>dec=>hex mais j'ai un problème j'utilise de grande séquences binaires plus de 32 bit alors bin=>dec ( où j'utilise la fonction pow) ne fonctionne pas puisque la capacité d'un entier est limité a 32 bit) que dois je faire ?
si c'est possible répondez moi vite je dois terminer mon programme avant 4 jours
merci
slt, mon programme est en c++builder il convertis un nombre binaire en hexadécimale en passant de bin =>dec=>hex mais j'ai un problème j'utilise de grande séquences binaires plus de 32 bit alors bin=>dec ( où j'utilise la fonction pow) ne fonctionne pas puisque la capacité d'un entier est limité a 32 bit) que dois je faire ?
si c'est possible répondez moi vite je dois terminer mon programme avant 4 jours
merci
12 réponses
Il y a les types long et long long pour avoir des entiers plus grand, mais je ne suis pas sur que ça soit la peine.
En quoi code tu ? je ne comprend pas où est le problème.
En quoi code tu ? je ne comprend pas où est le problème.
slt, merci pour votre réponse..........
je vais vous donner un exemple j'ai un nombre en binaire "1000000000000010001110011011011110" que dois convertir en hexadécimale ma procédure passe du binaires vers le décimale en utilisant la fonction (pow pour cette conversion ) mais un entier est limité à 4294967296 donc ça ne supporte pas de convertir le nombre "1000000000000010001110011011011110"
j'espère que j'ai bien su vous expliquer mon problème et merci ..............................
salutation imene_soumaya
je vais vous donner un exemple j'ai un nombre en binaire "1000000000000010001110011011011110" que dois convertir en hexadécimale ma procédure passe du binaires vers le décimale en utilisant la fonction (pow pour cette conversion ) mais un entier est limité à 4294967296 donc ça ne supporte pas de convertir le nombre "1000000000000010001110011011011110"
j'espère que j'ai bien su vous expliquer mon problème et merci ..............................
salutation imene_soumaya
slt, je convertis pour convertir du binaire vers l'hexa je doit passer du binaire vers le décimale puis vers le l'hexa
c'est-à-dire : bin=>dec=>hex
merci .................
c'est-à-dire : bin=>dec=>hex
merci .................
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
On a compris, mais pourquoi faire cette étape inutile ?
Pour convertir du binaire à l'haxa, rien de plus simple, tu fait des groupes de 4 bit que tu convertis ensuite dans le chiffre hexa souhaité, c'est bien plus simple que de convertir en décimal.
ça ne répond pas à ma question : En quel langage code tu ?
Autre question comment est stocké en mémoire ton nombre binaire ?
Pour convertir du binaire à l'haxa, rien de plus simple, tu fait des groupes de 4 bit que tu convertis ensuite dans le chiffre hexa souhaité, c'est bien plus simple que de convertir en décimal.
ça ne répond pas à ma question : En quel langage code tu ?
Autre question comment est stocké en mémoire ton nombre binaire ?
okey
je programme en c++ builder
et je stock dans un fichier .ini les données sous une représentation hexa,
je programme en c++ builder
et je stock dans un fichier .ini les données sous une représentation hexa,
j'ai essayer de la faire car j'ai programmé la même fonction mais HexToBin le pb c'est que je n'arrive pas à regrouper les 4
Donc, je suppose que tu stockes ton nombre binaire dans un tableau de caractère.
Faires des groupes de 4, ce n'est pourtant pas trop difficile.
Tu fait du C++, donc, tu doit stocker ton bianire dans un string :
std::string bin="01101010101";
Avant de faire des goupes de 4 :
switch(bin.size()%4)
{case 1: bin="0"+bin;break;
case 2: bin="00"+bin;break;
case 3:bin="000"+bin;break;
}
Ensuite, tu fait un boucle :
for(int n=bin.size()/4-1;n>=0;--n)
dans laquelle tu converti chaque groupe dans le caractère hexa approprier (0 à F)
bin.substr(n*4,4);
Faires des groupes de 4, ce n'est pourtant pas trop difficile.
Tu fait du C++, donc, tu doit stocker ton bianire dans un string :
std::string bin="01101010101";
Avant de faire des goupes de 4 :
switch(bin.size()%4)
{case 1: bin="0"+bin;break;
case 2: bin="00"+bin;break;
case 3:bin="000"+bin;break;
}
Ensuite, tu fait un boucle :
for(int n=bin.size()/4-1;n>=0;--n)
dans laquelle tu converti chaque groupe dans le caractère hexa approprier (0 à F)
bin.substr(n*4,4);