32位机器下uint64_t问题

localhost8090 2011-06-22 11:29:14
今天写了这样的代码
uint64_t t = 4294967296LL;
用printf("%llu",t);输出来
结果是0
而4294967295只是int的最大值呀(32位)
是不是我的输出格式有误还是其他什么问题。
...全文
2035 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-06-23
  • 打赏
  • 举报
回复
引用 5 楼 qq120848369 的回复:

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
unsigned __int64 n=4294967296ui64;

printf("%I64u\n",n);

return 0;
}
AnYidan 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 localhost8090 的回复:]
知道了,是输出格式的问题。
结贴,接分的可以进来。
[/Quote]

恭喜lz,接分
至善者善之敌 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]
C/C++ code
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
uint64_t n=4294967296;

printf("%I64u",n);

return 0;
}
[/Quote]


++++++
qq120848369 2011-06-23
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
uint64_t n=4294967296;

printf("%I64u",n);

return 0;
}
localhost8090 2011-06-23
  • 打赏
  • 举报
回复
知道了,是输出格式的问题。
结贴,接分的可以进来。
q1q2q3q4ln 2011-06-23
  • 打赏
  • 举报
回复
强制转换为double输出
localhost8090 2011-06-23
  • 打赏
  • 举报
回复
long long 跟 uint64_t 没什么区别吧
自由建客 2011-06-23
  • 打赏
  • 举报
回复
long long
luciferisnotsatan 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qq120848369 的回复:]

C/C++ code
#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
uint64_t n=4294967296;

printf("%I64u",n);

return 0;
}
[/Quote]
++
自由建客 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 localhost8090 的回复:]

long long 跟 uint64_t 没什么区别吧
[/Quote]
不我清楚 int64_t 是怎么定义的,但 %ll 是为 long long 定制的输出格式。

unsigned long long t = 14294967296LL;
printf("%llu", t);

绝对能行,我还在前面多加了一个 1 。

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧