programing

16진수 형식의 부호 없는 긴 활자 인쇄

copyandpastes 2022. 8. 3. 23:48
반응형

16진수 형식의 부호 없는 긴 활자 인쇄

인쇄를 시도하고 있습니다.unsigned long long다음과 같습니다.

  printf("Hex add is: 0x%ux ", hexAdd);

단, Type 변환 에러가 발생하고 있습니다.unsigned long long.

같은 것을 사용할 수 있습니다.ll크기 한정자%x다음과 같습니다.

#include <stdio.h>

int main() {
    unsigned long long x = 123456789012345ULL;
    printf("%llx\n", x);
    return 0;
}

변환 및 포맷 지정자의 모든 범위를 다음 표에 나타냅니다.

해라%llu- 10진수 형식으로 길게 서명되지 않습니다.

%llx16진수로 길게 서명되지 않은 인쇄물

printf("Hex add is: %llu", hexAdd);

MinGW 라이브러리를 사용한 경우에도 비슷한 문제가 있었습니다.%llu 또는 %llx를 인식하지 못했습니다.

제 대답은 이렇습니다...

void PutValue64(uint64_t value) {
char    a_string[25];   // 16 for the hex data, 2 for the 0x, 1 for the term, and some spare
uint32  MSB_part;
uint32  LSB_part;

    MSB_part = value >> 32;
    LSB_part= value & 0x00000000FFFFFFFF;

    printf(a_string, "0x%04x%08x", MSB_part, LSB_part);
}

주의: %04x는 단순히 %x일 수 있지만 %08x가 필요합니다.

행운을 빌어요.마크.

언급URL : https://stackoverflow.com/questions/19284978/unsigned-long-long-type-printing-in-hexadecimal-format

반응형