VimIy微民网,让世界倾听微民的声音! 设为首页 | 加入收藏 | 网站地图
当前位置:主页 > 大杂烩 >

有程序员给我讲讲这个C的小问题么

整理时间:2013-09-18 10:35 来源:www.vimiy.com 作者:编辑 点击:

【楼主】2013-09-19 17:57

» 有程序员给我讲讲这个C的小问题么
    我用的32位机系统是xp,书上C的小例题自己试了下,用%lld为什么还是会溢出,不解
    我没学过计算机组成原理,用尽可能简单明了的话解释下
    

网友评论2013-09-19 18:04


    不同的数据类型能表示大小的范围是不一样的吧,这个貌似是语言决定的
    我也忘光了
    
网友评论2013-09-19 18:06


    早不记得上限了。。。
    
网友评论2013-09-19 18:09


    32位机用%l64d试试。 我这是64机 lld没问题。
    


网友评论2013-09-19 18:12


    有个limits.h,你可以看看,限制都在里面
    
网友评论2013-09-19 18:15


    只用c++的表示这是异端!
    
网友评论2013-09-19 18:19


    我是WIN7 64 VS2010
    
    lld显示的是正常的 ld显示的是你机子那个lld的数字。
    
    你可以先换个编译器实验下,因为我sizeof(long long) 得到的数字依然是8 而且我也没拿X64编译。
    
网友评论2013-09-19 18:41


    32位机要用%I64d..
    打acm经常会遇上这个问题,必须提前知道输入输出格式
    这时cin/cout的优势就出来了
    


网友评论2013-09-19 19:00


    Reply Post by KnightLolicon (2013-09-19 18:41):
    
    32位机要用%I64d..
    打acm经常会遇上这个问题,必须提前知道输入输出格式
    这时cin/cout的优势就出来了
    
    唔……看起来确实是这样的呢,不过输入输出格式这章在书上好后面,前面没个提醒的话我这种新手无所适从啊。
    
网友评论2013-09-19 19:03


    Reply Post by KnightLolicon (2013-09-19 18:41):
    
    32位机要用%I64d..
    打acm经常会遇上这个问题,必须提前知道输入输出格式
    这时cin/cout的优势就出来了
    另外,前面用了%I64d,后面还是用%ld,为什么两次输出不一样呢?
    

网友评论2013-09-19 19:08


    Reply Post by 平凡之殇 (2013-09-19 19:03):
    
    另外,前面用了%I64d,后面还是用%ld,为什么两次输出不一样呢?
    后面是拿来对照的,让你认识到什么叫溢出
    
网友评论2013-09-19 19:14


    Reply Post by KnightLolicon (2013-09-19 19:08):
    
    后面是拿来对照的,让你认识到什么叫溢出
    
    就是说C没有定义溢出规则,溢出数是随机的?
    嗯,我指的是两幅图中,同时对verybig用%ld输出,一次是2874,一次是1942899938
    


网友评论2013-09-19 19:58


    那串数字后面加个LL
    
网友评论2013-09-19 20:07


    Reply Post by 平凡之殇 (2013-09-19 19:14):
    
    就是说C没有定义溢出规则,溢出数是随机的?
    嗯,我指的是两幅图中,同时对verybig用%ld输出,一次是2874,一次是1942899938
    这个大概要看编译器和环境吧。。我没遇到过溢出结果是随机的情况
    

    
    
    

上一篇:有这样的电脑配件吗?
下一篇:没有了
关于网站 | 网站声明 | 用户反馈 | 合作伙伴 | 联系我们
Copyright © 2012年2月8日