Eu quero fazer:
int a = 255;
cout << a;
e mostrar FF na saída, como eu faria isso?
Usar:
#include <iostream>
...
std::cout << std::hex << a;
Existem muitas outras opções para controlar a formatação exata do número de saída , como zeros à esquerda e maiúsculas / minúsculas.
cout << hex << a << dec;
alterá-lo novamente.ios::fmtflags f(cout.flags());
e restaurá-lo comout.flags(f);
.std::cout.flags(f);
std::hex
é definido no<ios>
qual é incluído por<iostream>
. Mas para usar coisas comostd::setprecision/std::setw/std::setfill
/ etc, você deve incluir<iomanip>
.fonte
Para manipular o fluxo para imprimir em hexadecimal, use o
hex
manipulador:Por padrão, os caracteres hexadecimais são impressos em minúsculas. Para alterá-lo para maiúsculas, use o
uppercase
manipulador:Para alterar posteriormente a saída para minúscula, use o
nouppercase
manipulador:fonte
nouppercase
indo para mudar a parte traseira de saída para decimal?Se você deseja imprimir um único número hexadecimal e, em seguida, reverter para o decimal, use:
fonte
Entendo que não é isso que o OP solicitou, mas ainda acho que vale a pena apontar como fazê-lo com o printf. Eu quase sempre prefiro usá-lo sobre std :: cout (mesmo sem o fundo C anterior).
'2' define a precisão, 'X' ou 'x' define maiúsculas e minúsculas.
fonte
printf("hello\n")
é equivalente afprintf(stdout, "hello\n")
. Mais útil, você pode passarstdout
(oustdin
, oustderr
) para uma função que recebe umFILE*
argumento.Existem diferentes tipos de bandeiras e máscaras que você também pode usar. Consulte http://www.cplusplus.com/reference/iostream/ios_base/setf/ para obter mais informações.
fonte
std::hex
fornece a formatação hexadecimal, mas é uma opção com estado, o que significa que você precisa salvar e restaurar o estado ou isso afetará toda a saída futura.Ingenuamente, retornar a isso
std::dec
só é bom se for onde as bandeiras estavam antes, o que pode não ser o caso, principalmente se você estiver escrevendo uma biblioteca.Isso combina a resposta e as informações de Greg Hewgill de outra pergunta .
fonte
Use
std::uppercase
estd::hex
para formatar a variável inteiraa
a ser exibida no formato hexadecimal.fonte