2009-11-29 6 views
1

Ce genre de construit sur Already asked question ... Mais ici, disons, je me donne une entrée hexadécimale qui pourrait être un maximum de « 0xFFFF » Je vais en avoir besoin converti en binaire , de sorte que je finirais avec un maximum de 16 bits. Je me demandais si utiliser 'bitset' ce serait assez simple .. Des idées?Convertir hexadécimal en binaire C++

EDIT:

Après avoir obtenu des réponses, morceau improvisées de code ici: http://pastebin.com/f7a6f0a69

+0

Cela dépend de ce que vous entendez par "entrée hexadécimale". Est-ce la chaîne '" 0xFFFF "'? – sbi

+0

Que voulez-vous dire par binaire? Tout est en binaire sur un ordinateur, y compris les valeurs hexadécimales, les flottants, les caractères ASCII et Unicode. Voulez-vous dire à un scalaire/entier? –

+0

Par binaire, je voulais dire "en bits physiques" .. – halluc1nati0n

Répondre

6

Supposant par "entrée hexadécimale" vous voulez dire une chaîne contenant un nombre hexadécimal, cela fonctionnerait:

const char* const str = "0xFFFF"; 
std::istringstream iss(str); 
int i; 
iss >> std::hex >> i; 
if(!iss && !iss.eof()) throw "dammit!"; 
std::cout << '"' << str << "\": " << i << "(0x" << std::hex << i << ")\n"; 
+3

+1 pour "dammit!" ;) –

+0

Eh bien, c'était génial. Mais je n'en avais pas besoin en décimal, j'en avais besoin en binaire. Quoi qu'il en soit, j'ai fait quelques recherches et j'ai fait l'improvisation .. :) Ici: http://pastebin.com/m401f1b79 – halluc1nati0n

+3

@ halluc1nati0n: Je vous conseille d'être plus précis dans vos questions de formulation. Toute variable est en fait binaire, et après 'iss >> std :: hex >> i' la valeur est réellement sous forme binaire. Maintenant, ce que vous demandiez est de convertir en une chaîne représentant la forme binaire, ce qui est une histoire différente. Je suis sûr que vous auriez obtenu le résultat en premier si vous aviez posé la bonne question. –