Convierte la cadena en hexadecimal en C++
-
Usa
std::cout
ystd::hex
para convertir la cadena a valor hexadecimal en C++ -
Usa
std::stringstream
ystd::hex
para convertir la cadena a un valor hexadecimal en C++
Este artículo demostrará múltiples métodos sobre cómo convertir la cadena a hexadecimal en C++.
Usa std::cout
y std::hex
para convertir la cadena a valor hexadecimal en C++
La notación hexadecimal es un formato común para leer archivos binarios que representan archivos de programa, formato codificado o simplemente texto. Por lo tanto, se necesitaría generar el contenido de los archivos con datos hexadecimales y darles salida según sea necesario.
En este ejemplo, damos salida al objeto string
almacenado como caracteres hexadecimales a la consola. Observe que C++ proporciona un manipulador de E/S std::hex
que puede modificar la base numérica de los datos de la cadena. Un objeto string
debe ser descompuesto como caracteres individuales y luego modificado individualmente con std::hex
a su respectiva representación hexadecimal. Implementamos el bucle basado en el rango para iterar sobre los caracteres de la string
y redirigir los datos modificados al flujo 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;
}
Producción :
string: This will be converted to hexadecimal
hexval: 546869732077696c6c20626520636f6e76657274656420746f2068657861646563696d616c
Usa std::stringstream
y std::hex
para convertir la cadena a un valor hexadecimal en C++
El método anterior carece de la característica de almacenar los datos hexadecimales en el objeto. La solución a este problema es crear un objeto stringstream
, donde insertamos los valores hexadecimales de los caracteres string
usando la iteración. Una vez que los datos están en stringstream
, puede construir un nuevo objeto string
para almacenar los datos de los caracteres modificados.
Note que los datos pueden ser emitidos directamente desde el objeto stringstream
, pero en el siguiente código de ejemplo, se emplea una forma más simple - cout << string
. Un caso de uso final alternativo podría ser escribir los datos hexadecimales directamente en el archivo, usando las utilidades del sistema de archivos de la biblioteca estándar.
#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;
}
Producción :
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 FacebookArtículo relacionado - C++ String
- Encuentre el primer carácter repetido en una cadena en C++
- Encuentre la subcadena común más larga en C++
- Poner en mayúscula la primera letra de una cadena en C++
- Comparación de cadenas y caracteres en C++
- Eliminar el último carácter de una cadena en C++
- Obtener el último carácter de una cadena en C++