Malgré sa simplicité, la conversion d'entiers en chaînes hexadécimales en C peut poser des défis aux développeurs. Contrairement au C, le C ne dispose pas d'une méthode native pour cette conversion.
Cependant, on peut exploiter la puissance du
std::cout << std::hex << your_int;
Pour capturer la représentation sous forme de chaîne hexadécimale d'un entier pour une utilisation ultérieure, envisagez d'utiliser un objet std::stringstream.
std::stringstream stream; stream << std::hex << your_int; std::string result(stream.str());
Dans l'exemple ci-dessus, le préfixe 0x peut être ajouté au préfixe << opération, si vous le souhaitez.
Les manipulateurs supplémentaires à noter incluent std::oct (octal) et std::dec (décimal).
Cependant, le manipulateur std::hex produit par défaut une chaîne représentations qui contiennent uniquement le nombre nécessaire de chiffres hexadécimaux. Si une largeur spécifique est souhaitée, std::setfill et std::setw peuvent être utilisés.
stream << std::setfill('0') << std::setw(sizeof(your_type) * 2) << std::hex << your_int;
Enfin, une fonction générique peut être définie pour gérer les conversions d'entier en hexadécimal :
template< typename T > std::string int_to_hex( T i ) { std::stringstream stream; stream << "0x" << std::setfill ('0') << std::setw(sizeof(T)*2) << std::hex << i; return stream.str(); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!