2011-01-22 8 views
0

A03Eh 형식의 16 진수를 A = 10 & E = 14로 표시하고 A는 니블입니다. 그러나 나는 이와 같은 또 다른 디스플레이를 보았습니다 : 0x002314A8, 어떻게 위의 숫자를이 형식으로 변환 할 수 있습니까? 이 형식은 무엇입니까?16 진수 표시

+1

에서 [printf와 형식 지정을 (체크 아웃 http://www.cppreference.com/wiki/io/c/printf_format) 당신을 도울 수 있습니다. –

+0

A03Eh는 어셈블러 형식이고 0x0000A03E는 C/Unix 형식이며 8 바이트의 패딩은 선택 사항이며 출력의 h 비트 및 x는 16 진수를 나타냅니다. –

답변

0

형식 0x은 16 진수를 나타내는 표준 유닉스 방식입니다. 나는 처음에는 0x을 보곤하는데, 끝 부분에는 h이 아니었다.

유일한 차이점이 있습니다. Péter Török와 마찬가지로 C/C++를 사용하는 경우 인쇄 할 때 표시되는 내용을 수정할 수있는 방법이 있습니다.

+0

남자가 필요합니다. –

+0

다른 모든 대답에 암시 적이었습니다. –

-1

정수를 사용하여 해당 형식의 문자열을 반환하는 함수를 작성하십시오. 다음과 같이 호출하십시오.

std::cout << toHex(0xA03E); 

작성하는 것이 그렇게 어렵지 않아야합니다. ios :: hex manipulator를 사용하면 숫자가 0x 형식으로 표시됩니다. 그게 니가 원하는거야?

+1

16 진수로 변환하기위한 추가 함수를 작성하지 않아도됩니다. 'std :: hex'를 사용하면 충분합니다. –

+0

@Cesar : "A03Eh"와 같은 번호를 표시하고 싶지 않은 경우 –

+0

@Benjamin Lindley : printf (" % Xh ", a); –

2
int a = 0x002314A8; 
printf("a = 0x%08X", a); 

또는

나는 확실히 당신의 문제를 이해하지 않지만
std::out << "a = 0x" << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << std::setprecision(8) << a ;