Converti stringa in esadecimale in C++
-
Usa
std::cout
estd::hex
per convertire la stringa in valore esadecimale in C++ -
Usa
std::stringstream
estd::hex
per convertire la stringa in valore esadecimale in C++
Questo articolo illustrerà più metodi su come convertire una stringa in esadecimale in C++.
Usa std::cout
e std::hex
per convertire la stringa in valore esadecimale in C++
La notazione esadecimale è un formato comune per la lettura di file binari che rappresentano file di programma, formato codificato o solo testo. Pertanto, è necessario generare il contenuto del file con dati esadecimali e visualizzarlo secondo necessità.
In questo esempio, restituiamo alla console l’oggetto stringa
memorizzato come caratteri esadecimali. Notare che C++ fornisce un manipolatore I/O std::hex
che può modificare la base numerica dei dati del flusso. Un oggetto stringa
dovrebbe essere scomposto come caratteri singoli e poi modificato individualmente con std::hex
nella rispettiva rappresentazione esadecimale. Implementiamo il bucle basato sulla gamma per iterare su caratteri stringa
e reindirizzare i dati modificati al flusso cout
.
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
using std::cout;
using std::endl;
using std::hex;
using std::string;
using std::stringstream;
int main() {
string s1 = "This will be converted to hexadecimal";
string s2;
cout << "string: " << s1 << endl;
cout << "hexval: ";
for (const auto &item : s1) {
cout << hex << int(item);
}
cout << endl;
return EXIT_SUCCESS;
}
Produzione:
string: This will be converted to hexadecimal
hexval: 546869732077696c6c20626520636f6e76657274656420746f2068657861646563696d616c
Usa std::stringstream
e std::hex
per convertire la stringa in valore esadecimale in C++
Il metodo precedente non ha la funzionalità di memorizzare i dati esadecimali nell’oggetto. La soluzione a questo problema è creare un oggetto stringstream
, dove inseriamo i valori esadecimali dei caratteri stringa
usando l’iterazione. Una volta che i dati sono in stringstream
, può costruire un nuovo oggetto stringa
per memorizzare i dati dei caratteri modificati.
Si noti che i dati possono essere emessi direttamente dall’oggetto stringstream
, ma nel seguente codice di esempio viene impiegata una forma più semplice - cout << string
. Un caso di utilizzo finale alternativo potrebbe essere quello di scrivere i dati esadecimali direttamente nel file, utilizzando le utilità del file system della libreria standard.
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
using std::cout;
using std::endl;
using std::hex;
using std::string;
using std::stringstream;
int main() {
string s1 = "This will be converted to hexadecimal";
string s2;
stringstream ss;
cout << "string: " << s1 << endl;
for (const auto &item : s1) {
ss << hex << int(item);
}
s2 = ss.str();
cout << "hexval: " << s2 << endl;
return EXIT_SUCCESS;
}
Produzione:
string: This will be converted to hexadecimal
hexval: 546869732077696c6c20626520636f6e76657274656420746f2068657861646563696d616c
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook