问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言关于整型数据溢出的问题

发布网友 发布时间:2022-04-16 02:25

我来回答

2个回答

热心网友 时间:2022-04-16 03:54

关于long型在计算机内存储方式,参看:
http://zhidao.baidu.com/question/112869407.html
yyrryyrr2的回答

-----------------------------------------------------
printf("%d\n%ld",a,b);中
printf将"%d\n%ld",a及b依次压入栈中
printf内部的可变参数分解函数从栈中取出数据替代%d,
依你的输出结果你用的是16位编译器。
栈从低地址到高地址数据为:
地址(假设) 数据
0xf000 0x3000(指向("%d\n%ld")
0xf002 0x7fff(即32767)
0xf004 0x8000 (即32768)
0xf006 0x????(此处为main函数的局部变量)
那么printf首先接受一个16位的int型,取出0x7fff调用_itoa将其转化成数字字符并替换%d。
然后printf需要取出一个32位long型数据,从0xf004处,可是你只给入了一个16值,所以取出的32位值包含垃圾信息(有16位是main函数的局部变量或垃圾信息),是0x8000????形式,而实际上????处恰好包含了0x0000(这点从你第二个printf调用即可看出,后一堆垃圾数据是0x0000),所以最终输出数字0x80000000即-2147483648

对后两个printf的分析类似
第二个调用虽然传入两个可变参数,但是由于有3个%d,所以前两个取出后,继续从栈上取数据,取出了main的栈桢的数据0x0000
最后一个printf调用再取了更后面的数据。
--------------------------------------------------
楼主喜欢探究问题的根源。
你可以翻看我的百度回答关于c/c++的回答,会令你受益匪浅

热心网友 时间:2022-04-16 05:12

数据存储到内存是按照2进制存储的
int型只能保存32位(二进制),如果超出了就会把前边的溢出了,就是保留后边的,前边的扔掉了
具体的还要涉及到正数和负数的问题,有符号的话,第一位是表示符号的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 前几天刚刚升级的360浏览器6.1。打开页面一段时间后滚轮就不好使了,只能点击进度条翻页面,该怎么调 请教360浏览器升级到3.16正式版后,滚动滚轮无法隐藏或显示已打开网页标题的解决方法。详见下。谢谢! 为什么360极速浏览器和IE里鼠标滚轮不能用,文件夹,QQ里可以。我改过注册表数据,是不是和这个有关呀? 360浏览器滚轮会自己失去作用 为什么在360浏览器里面h5的滚轮事件没有效果,点击事件也是。其他浏览器都可以 一百字以内的周总理智斗别的国家的故事 对越战争,联合国秘书长得知战争爆发后,是什么样的态度? 12月21日历史上发生过甚么重大事件? 中国近代史里面十月二十一号发生了什么事情? 下半旗的事件 - 信息提示 周恩来的感人事件 库尔特·瓦尔德海姆 联合国第四任秘书长是瓦尔德海姆吗? 瓦尔德海姆的演讲会起怎样的结果?为什么? 库尔特·瓦尔德海姆的生平经历是什么? 请大神看看,整型数据溢出的输出结果怎么不对啊 java写一段程序 实现对本地路径下一word文档打开并且另存为指定的格式的文件,请问能实现吗? 求实例代码 淘宝无人直播助手多少钱? 幕言快手无人直播助手现在功能多了吗? 我在百度问答上面问的问题怎么删 在百度知道中,自己提问的问题被管理员删除了,如何查看回答 如何上传到云盘的歌曲如何修改歌手信息 百度提问怎么删除?在我的提问里直接点了删除后,网页上还是能搜到,到我这里找不到了 怎样上传歌曲到百度云盘网 百度知道提问后在哪里可以删除去 老爷用日语怎么讲? 日语中对家人的称谓,从爷爷辈到小辈,带日语,假名,罗马字的蟹蟹~ 请问日语里小姐,少爷,老爷,太太,公主,王子.....怎么说 日语里面的老爷子怎么说 日语dana和anata的区别? 日语中“哦呀吉”什么意思,“爷爷”的日语又怎么说 老爷用日语怎么说(罗马音) 整型数据溢出,对于32位字符 2147483647+1,怎么设置才能输出真实值 手机淘宝邮政网银小额免密设置怎么解除 c语言中数据溢出的问题怎么解决? 营业执照增加药品营业范围怎么增加?需要什么资料? 除了《庶女有毒》,梦三千和流逝的有声小说还有哪些? 庶女有毒有声小说打包下载 庶女有毒懒人听书为什么下架,我还没听完呢 无语 还有哪里可以听的?