Maison > développement back-end > C++ > Comment convertir une chaîne hexadécimale C en un entier signé ?

Comment convertir une chaîne hexadécimale C en un entier signé ?

Patricia Arquette
Libérer: 2024-12-27 20:45:14
original
978 Les gens l'ont consulté

How to Convert a C   Hex String to a Signed Integer?

Conversion de chaîne hexadécimale C en entier signé

Supposons que vous ayez une chaîne hexadécimale et que vous souhaitiez la convertir en un entier signé de 32 bits dans C. Par exemple, étant donné la chaîne hexadécimale « fffefffe », la représentation binaire est 1111111111111110111111111111110. Cela représente un entier signé de -65538.

Procédure de conversion :

Pour effectuer cette opération conversion efficace, utilisez std :: stringstream comme suit :

unsigned int x;
std::stringstream ss;
ss << std::hex << "fffefffe";
ss >> x;
Copier après la connexion

Par exemple, l'extrait de code suivant donne -65538 :

#include <sstream>
#include <iostream>

int main() {
    unsigned int x;
    std::stringstream ss;
    ss << std::hex << "fffefffe";
    ss >> x;
    // Output as a signed type
    std::cout << static_cast<int>(x) << std::endl;
}
Copier après la connexion

Fonctions de conversion de chaîne C 11 :

Pour C 11 ou version ultérieure, les nouveaux utilitaires de numérotation de chaîne simplifient ce processus. Les fonctions "stol" (chaîne en long) et "stoul" (chaîne en long non signé) fournissent des enveloppes fines autour des capacités de conversion de chaîne du C.

std::string s = "0xfffefffe";
unsigned int x = std::stoul(s, nullptr, 16);
Copier après la connexion

Considérations supplémentaires :

Notez que Boost fournit également des fonctionnalités utiles pour cette conversion, notamment des capacités de vérification des erreurs.

Cependant, pour des raisons de simplicité et de portabilité, il est Il est recommandé d'utiliser les fonctions utilitaires stringstream ou C 11 intégrées présentées ici.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal