답변:
사용하다:
#include <iostream>
...
std::cout << std::hex << a;
선행 0 및 대소 문자와 같이 출력 번호의 정확한 형식을 제어하는 다른 옵션 이 많이 있습니다 .
std::cout.flags(f);
16 진수로 인쇄 할 스트림을 조작하려면 조작기를 사용하십시오 hex
.
cout << hex << a;
기본적으로 16 진 문자는 소문자로 출력됩니다. 대문자로 변경하려면 uppercase
조작기를 사용하십시오 .
cout << hex << uppercase << a;
나중에 출력을 다시 소문자로 변경하려면 nouppercase
조작기를 사용하십시오 .
cout << nouppercase << b;
nouppercase
진수로 출력 다시 변경하려고?
나는 이것이 OP가 요구 한 것이 아니라는 것을 이해하지만, 여전히 printf로 그것을하는 방법을 지적 할 가치가 있다고 생각합니다. 나는 항상 std :: cout (이전 C 배경이 없어도)보다 그것을 사용하는 것을 선호합니다.
printf("%.2X", a);
'2'는 정밀도를 정의하고 'X'또는 'x'는 대소 문자를 정의합니다.
printf("hello\n")
와 같은 이유 입니다 fprintf(stdout, "hello\n")
. 보다 유용하게 는 인수 를받는 함수에 stdout
(또는 stdin
, 또는 stderr
)를 전달할 수 있습니다 FILE*
.
사용할 수있는 다양한 종류의 플래그 및 마스크가 있습니다. 자세한 내용은 http://www.cplusplus.com/reference/iostream/ios_base/setf/ 를 참조하십시오.
#include <iostream>
using namespace std;
int main()
{
int num = 255;
cout.setf(ios::hex, ios::basefield);
cout << "Hex: " << num << endl;
cout.unsetf(ios::hex);
cout << "Original format: " << num << endl;
return 0;
}
std::hex
16 진 형식을 가져 오지만 상태 저장 옵션으로 상태를 저장하고 복원해야합니다. 그렇지 않으면 이후의 모든 출력에 영향을 미칩니다.
순진하게 다시 전환 std::dec
하는 것은 플래그가 이전에 있었던 경우에만 유용하며, 특히 라이브러리를 작성하는 경우에는 그렇지 않을 수 있습니다.
#include <iostream>
#include <ios>
...
std::ios_base::fmtflags f( cout.flags() ); // save flags state
std::cout << std::hex << a;
cout.flags( f ); // restore flags state
이것은 Greg Hewgill의 답변과 다른 질문의 정보를 결합 합니다.
사용 std::uppercase
및 std::hex
형식 정수 변수에는 a
16 진수 형식으로 표시합니다.
#include <iostream>
int main() {
int a = 255;
// Formatting Integer
std::cout << std::uppercase << std::hex << a << std::endl; // Output: FF
std::cout << std::showbase << std::hex << a << std::endl; // Output: 0XFF
std::cout << std::nouppercase << std::showbase << std::hex << a << std::endl; // Output: 0xff
return 0;
}
cout << hex << a << dec;
하려면 다시 변경하는 것이 좋습니다.