这是我的简单代码;
#include<stdio.h>#include<stdlib.h>int main(){ unsigned long number = 1528108405744583338; printf("%lu",number ); return 0;}
当我运行此代码时,在控制台上我得到输出为2930885290.这里发生了什么?我在Dev-C,C-Free 5.0环境中尝试过它,但两者都得到了相同的结果.我检查了类似的帖子,并尝试了解决方法,但答案无法帮助我解决我的问题.谢谢您的回答.
解决方法 有问题的值需要64位数据类型,无符号长度不一定是64位.保证至少为32位.因此,如果您的系统使用32位表示无符号长度,您将获得所获得的值,如果它使用64位作为无符号长度,您将获得预期值.保证unsigned long long保持此值,因此请使用它.
#include<stdio.h>#include<stdlib.h>int main(){ unsigned long long number = 1528108405744583338ulL; printf("%llu",number ); return 0;}总结
以上是内存溢出为你收集整理的c – 尝试打印unsigned long,但获取不同的数字全部内容,希望文章能够帮你解决c – 尝试打印unsigned long,但获取不同的数字所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)