Convertir des chaînes entre hex format et format binaire
Est-il un utilitaire ou une bibliothèque fournit une fonction simple pour convertir une chaîne de caractères entre hex/format binaire? J'ai été à la recherche sur DONC et actuellement à l'aide de look-up table) approche. Par la voie, car il pourrait être une longue chaîne, je ne pourrais pas envisager de convertir la chaîne en entier et le processus de la conversion de format, comme une longue chaîne peut être plus importante que MAX_INT (ou d'autres types de données integer).
Par exemple:
0xA1 => 10100001
11110001 => 0xF1
PS: Mon projet est à l'aide de Boost 1.44, un peu hors-daté. Donc, si l'utilité est de Boost, j'espère que c'est disponible en 1.44.
Quel genre de "hex/format binaire"? Soins à donner quelques exemples?
OriginalL'auteur Stan | 2013-08-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser une combinaison de
std::stringstream
,std::hex
etstd::bitset
pour convertir entre hexadécimal et en binaire en C++03.Voici un exemple:
EDIT:
Sur le raffinée question, voici un exemple de code sur la conversion entre hex de cordes et de chaînes binaires (vous pouvez restructurer avec une fonction d'aide pour l'hexagone char<>les bits de la partie, et l'utilisation d'une carte ou d'un commutateur au lieu de cela, etc).
OriginalL'auteur Silex
Le code suivant comprend deux fonctions qui vont faire exactement ce que vous désirez. Ceci est basé sur la réponse en Silex, mais avec un supplément de quelques opérations de la chaîne pour correspondre à la sortie d'exemple que vous avez donné à votre question.
OriginalL'auteur ilent2
La solution la plus simple sans l'aide de bitset ou n'importe quelle bibliothèque, uniquement à l'aide d'opérateurs de décalage et std::hex de convertir l'ensemble des hex-string.
exemple de code pour convertir hex-string binaire chiffres :
exemple de sortie :
code complet snipet
OriginalL'auteur HaSeeB MiR