PRIu128
的行为是否与<inttypes.h>
中的PRIu64
相似:
printf("%" PRIu64 "\n", some_uint64_value);
或手动逐位转换:
int print_uint128(uint128_t n) {
if (n == 0) return printf("0\n");
char str[40] = {0}; // log10(1 << 128) + '\0'
char *s = str + sizeof(str) - 1; // start at the end
while (n != 0) {
if (s == str) return -1; // never happens
*--s = "0123456789"[n % 10]; // save last digit
n /= 10; // drop it
}
return printf("%s\n", s);
}
这是唯一的 Select 吗?
请注意,uint128_t
是我自己的__uint128_t
类型定义函数.