鱼C论坛

 找回密码
 立即注册
查看: 1873|回复: 9

int类型溢出问题

[复制链接]
发表于 2016-6-19 15:56:07 | 显示全部楼层 |阅读模式
20鱼币
这也没有溢出啊为什么会出现这个现象 160619-1553.png

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-19 16:07:37 | 显示全部楼层
首先,longlonglongint类型不一定是16位的,他有可能是DWORD(32位)或者QWORD(64位)或者QWORDQWORD(64位)所以,这样很正常。

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-6-19 16:20:03 | 显示全部楼层
无符号整形 发表于 2016-6-19 16:07
首先,longlonglongint类型不一定是16位的,他有可能是DWORD(32位)或者QWORD(64位)或者QWORDQWORD(64 ...

99999 * 99999 = 9999800001,而9999800001根本没有超出unsigned long long int (0 -18446744073709551616 )这个范围。我已经用sizeof取出了long long int的长度了,是占用8字节。而且我直接把18446744073709551615这个娄放进 i 也可以正常显示。可为什么把 99999*99999放进 i 就会溢出呢,实在想不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-19 16:48:28 | 显示全部楼层
本帖最后由 无符号整形 于 2016-6-19 16:49 编辑
淡淡的心跳 发表于 2016-6-19 16:20
99999 * 99999 = 9999800001,而9999800001根本没有超出unsigned long long int (0 -1844674407370955161 ...


18446744073709551615 = 1100110011001100110011001100110011001100110011001100110011001(二进制)
=62位
≈64位
≈8字节左右
就是这样得来的

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +1 收起 理由
淡淡的心跳 + 3 + 5 + 1 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-19 16:50:52 | 显示全部楼层
再编译试试?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-6-19 17:37:00 | 显示全部楼层
我自己来解答算了(不知道对不对)
我通过多次编译运行找出了个规律,因为C语言编译的时候会自动把占用坑位小的转换为占用坑位大的,也就是说在   int x, y ;     i = x * y 中的 x 与 y 的数据长度都是一样的,那也就是说 x * y的结果的数据长度不能超过  x,  y中数据长度大的一个的数据数据长度(也就是int型,因为x与y就是定义的int型),如果超过就会溢出、 不知我的这种解释对不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-6-19 17:51:10 | 显示全部楼层
通过再一次的实验证明我是对 160619-1743.png 160619-1748.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-21 00:45:40 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-15 12:13:08 | 显示全部楼层
是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-13 10:41:29 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 03:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表