printf如何输出64位整数测试
来自:关于printf函数输出64位数的问题,其实在window下和linux下是不一样的:【linux】printf("%lld/n",a);printf("%llu/n",a);【windows】printf("%I64d/n",a);printf("%I64u/n",a); 测试程序如下:[zcm@c #51
·
来自:http://blog.csdn.net/joeblackzqq/article/details/11522257
关于printf函数输出64位数的问题,其实在window下和linux下是不一样的:
【linux】
printf("%lld/n",a);
printf("%llu/n",a);
【windows】
printf("%I64d/n",a);
printf("%I64u/n",a);
发现原博主的测试代码不够严谨,所以修改了下,ubuntu测试程序如下:
ubuntu@ubuntu:~/test$ vim test.c
#include <stdio.h>
typedef long long int64;
typedef unsigned long long uint64;
int main ()
{
int64 c = 0xffffeeeeddddccccLL; // 有符号
uint64 uc = 0xffffeeeeddddccccULL; // 无符号
printf("%lld, %llu\n", c, uc); // 整数形式输出
printf("%llx, %llx\n", c, uc); // 十六进制格式输出
printf("%#llx, %#llx\n", c, uc); // 带0x的十六进制格式输出
return 0;
}
~
"test.c" 16L, 501C written
ubuntu@ubuntu:~/test$ gcc -o demo test.c
ubuntu@ubuntu:~/test$ ./demo
-18765284782900, 18446725308424768716
ffffeeeeddddcccc, ffffeeeeddddcccc
0xffffeeeeddddcccc, 0xffffeeeeddddcccc
更多推荐
已为社区贡献2条内容
所有评论(0)