有程序员给我讲讲这个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
这个大概要看编译器和环境吧。。我没遇到过溢出结果是随机的情况
LOL罗辑思维全国人大代表真三搞笑视频柳岩
Copyright © 2012年2月8日