64비트 정수를 16진수로 인쇄하는 방법
다음 코드로 나는 a의 값을 출력하려고 한다.unit64_t
변수 사용printf()
. gcc를 사용하여 코드를 컴파일하면 다음 경고가 반환됩니다.
경고: 형식 '%x'은(는) '연결된 int' 형식의 인수를 예상하지만, 인수 2의 형식은 'uint64_t' [-Wformat=]입니다.
코드:
#include <stdio.h>
#include <stdint.h>
int main ()
{
uint64_t val = 0x1234567890abcdef;
printf("val = 0x%x\n", val);
return 0;
}
출력:
val = 0x90abcdef
예상 출력:
val = 0x1234567890abcdef
64비트 값을 16진수 정수로 출력하려면printf()
? 그x
이 경우 지정자가 잘못된 것 같습니다.
컴파일러의 경고는 형식 지정자가 전달되는 데이터 유형과 일치하지 않음을 나타냅니다.
사용해보십시오.%lx
또는%llx
휴대성을 향상시키려면 , 다음을 포함합니다.inttypes.h
를 사용합니다.PRIx64
매크로를 사용합니다.
예를 들어 다음과 같습니다.printf("val = 0x%" PRIx64 "\n", val);
(문자열 연결이라는 점에 유의하십시오)
편집: 대신 사용합니다.
해라printf("val = 0x%llx\n", val);
. printf manpage 를 참조해 주세요.
ll(ell-ell)다음 정수 변환은 long long int 또는 unsigned long long int 인수에 대응하거나 다음 n 변환은 long long int 인수에 대한 포인터에 대응합니다.
편집: 더 좋은 것은 @M_Oehm입니다.여기에는 특정 매크로가 있습니다.unit64_t
항상 그런 것은 아니다unsigned long long
:PRIx64
이 stackoverflow 응답도 참조해 주세요.
언급URL : https://stackoverflow.com/questions/32112497/how-to-printf-a-64-bit-integer-as-hex
'itsource' 카테고리의 다른 글
JavaScript에서 날짜/시간을 빼는 방법 (0) | 2022.09.04 |
---|---|
Python에서 목록의 요소 수를 얻으려면 어떻게 해야 합니까? (0) | 2022.09.04 |
휴지 상태 시퀀스가 존재하지 않습니다. (0) | 2022.09.03 |
Https Connection Android (0) | 2022.09.03 |
JSTL if 동일한 문자열 태그 (0) | 2022.09.03 |