C/C++ unsigned long long
格式化输出的正确方式 💡
在 C/C++ 编程中,unsigned long long
类型用于存储 超大整数(通常为 64 位无符号整数)。
如果你需要在 printf
或 sprintf
中格式化输出 unsigned long long
变量,正确的格式化符号是 %llu;
⚠️ 注意事项:
%llu
适用于printf
、sprintf
等标准格式化函数。- 如果在 C++
std::cout
中打印,可以直接使用std::cout << num;
,不需要格式化符号。 - 在 32 位系统上,
unsigned long long
可能不是 64 位,要根据编译器确认类型大小。
💡 扩展:
%llu
——unsigned long long
(无符号 64 位整数)%lld
——long long
(有符号 64 位整数)
在开发中,如果涉及到大整数计算,比如 文件大小、时间戳、哈希值、计数器等,就可以使用 unsigned long long
进行存储,并通过 %llu
格式化输出!
与 long long
的区别
类型 | 长度(位) | 取值范围 | 格式化符号 |
---|---|---|---|
long long | 64 位 | -2^63 到 2^63-1 | %lld |
unsigned long long | 64 位 | 0 到 2^64-1 | %llu |
总结
需求 | 使用的数据类型 | 格式化符号 |
---|---|---|
64 位无符号整数 | unsigned long long | %llu |
64 位有符号整数 | long long | %lld |
32 位无符号整数 | unsigned int 或 unsigned long | %u 或 %lu |
32 位有符号整数 | int 或 long | %d 或 %ld |