首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用printf格式化一个无符号的long long int?

如何使用printf格式化一个无符号的long long int?
EN

Stack Overflow用户
提问于 2008-08-06 04:59:29
回答 9查看 856.1K关注 0票数 414
代码语言:javascript
复制
#include <stdio.h>
int main() {
    unsigned long long int num = 285212672; //FYI: fits in 29 bits
    int normalInt = 5;
    printf("My number is %d bytes wide and its value is %ul. A normal number is %d.\n", sizeof(num), num, normalInt);
    return 0;
}

输出:

代码语言:javascript
复制
My number is 8 bytes wide and its value is 285212672l. A normal number is 0.

我假设这个意外的结果是由于打印unsigned long long int造成的。How do you printf() an unsigned long long int

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-08-05 21:02:35

将ll (el-el) long-long修饰符与u(无符号)转换一起使用。(适用于windows、GNU)。

代码语言:javascript
复制
printf("%llu", 285212672);
票数 549
EN

Stack Overflow用户

发布于 2008-08-12 11:07:50

您可能希望尝试使用为您提供int32_tint64_tuint64_t等类型的inttypes.h库。然后,您可以使用其宏,例如:

代码语言:javascript
复制
uint64_t x;
uint32_t y;

printf("x: %"PRId64", y: %"PRId32"\n", x, y);

这“保证”不会给你带来与longunsigned long long等相同的麻烦,因为你不必猜测每种数据类型有多少位。

票数 100
EN

Stack Overflow用户

发布于 2015-05-14 01:48:33

用于int%d-->

用于unsigned int%u-->

用于long intlong%ld-->

%lu-->适用于unsigned long intlong unsigned intunsigned long

用于long long intlong long%lld-->

用于unsigned long long intunsigned long long%llu-->

票数 98
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档