2010-08-05 4 views
0

Si j'ai CRC32 (Checksum de redondance cyclique), alors comment puis-je obtenir de la chaîne?CRC32 (Checksum de redondance cyclique) à la chaîne

+2

Un CRC32 est juste un entier, donc tout ce qui convertit un entier en chaîne fonctionnera ... –

+0

Vous demandez comment obtenir la chaîne d'origine pour laquelle le CRC est généré? – Raghuram

Répondre

0

Si vous voulez obtenir le crc32_value comme une chaîne hexadécimale:

char crc32_string[64]; 
sprintf(crc32_string, "%8X", crc32_value); 

Vous ne suffisait pas clairement quel format, quel type de chaîne que vous voulez. Regardez MSDN pour savoir lequel sprintf travaille pour vous. Il y en a beaucoup avec une vérification des paramètres plus sécurisée.

0

Le C++ façon de convertir un nombre hexadécimal à une chaîne est la suivante:

std::stringstream s; 
s << std::hex << crc32 /*the CRC32 number that you have computed somewhere*/; 

std::string resultString = s.str(); 

Espérons que cela répond à votre question. Sinon, précise ce que vous attendez!

1

La question est ambiguous.

Si vous voulez dire "comment puis-je convertir l'entier CRC32 en chaîne?", C'est assez facile. Vous pouvez utiliser une fonction std :: ostringstream ou les fonctions sprintf() ou itoa(). Si, comme je le soupçonne, vous voulez dire "J'ai un CRC32 généré à partir d'une chaîne et je veux revenir à la chaîne d'origine", alors la réponse est "c'est impossible". Le CRC est une transformation à sens unique et il n'y a pas moyen de revenir en arrière.