Quiero hacer:
int a = 255;
cout << a;
y que muestre FF en la salida, ¿cómo haría esto?
Utilizar:
#include <iostream>
...
std::cout << std::hex << a;
Existen muchas otras opciones para controlar el formato exacto del número de salida , como los ceros iniciales y las mayúsculas / minúsculas.
cout << hex << a << dec;
cambiarlo nuevamente.ios::fmtflags f(cout.flags());
y restaurarlo conout.flags(f);
.std::cout.flags(f);
std::hex
se define en el<ios>
que está incluido por<iostream>
. Pero para usar cosas comostd::setprecision/std::setw/std::setfill
/ etc. tienes que incluir<iomanip>
.fuente
Para manipular la secuencia para imprimir en hexadecimal, use el
hex
manipulador:Por defecto, los caracteres hexadecimales se muestran en minúsculas. Para cambiarlo a mayúsculas, use el
uppercase
manipulador:Para luego cambiar la salida a minúsculas, use el
nouppercase
manipulador:fuente
nouppercase
Va a cambiar la salida a decimal?Si desea imprimir un solo número hexadecimal y luego volver al decimal, puede usar esto:
fuente
Entiendo que esto no es lo que OP solicitó, pero sigo pensando que vale la pena señalar cómo hacerlo con printf. Casi siempre prefiero usarlo sobre std :: cout (incluso sin un fondo C anterior).
'2' define la precisión, 'X' o 'x' define el caso.
fuente
printf("hello\n")
es equivalente afprintf(stdout, "hello\n")
. Más útilmente, puede pasarstdout
(ostdin
, ostderr
) a una función que toma unFILE*
argumento.También puedes usar diferentes tipos de banderas y máscaras. Consulte http://www.cplusplus.com/reference/iostream/ios_base/setf/ para obtener más información.
fuente
std::hex
le da el formato hexadecimal, pero es una opción con estado, lo que significa que necesita guardar y restaurar el estado o afectará a todos los resultados futuros.Cambiar ingenuamente a
std::dec
solo es bueno si es donde estaban las banderas antes, lo que puede no ser el caso, especialmente si está escribiendo una biblioteca.Esto combina la respuesta e información de Greg Hewgill de otra pregunta .
fuente
Utilice
std::uppercase
ystd::hex
para formatear la variable enteraa
que se mostrará en formato hexadecimal.fuente