数字大了为什么会输出负数?

Nxhivo 2017-11-12 11:41:39

比如输入:123456789987654321
...全文
992 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
着陆咯 2017-11-17
不同的数据类型都有自己的范围呐,太大了计算机肯定会溢出了。
  • 打赏
  • 举报
回复
进击的1024 2017-11-17
数据溢出; long int n; 改为long long n; scanf_s("%d", &n); 改为 scanf_s("%lld", &n);
  • 打赏
  • 举报
回复
zhouqunhai 2017-11-17
数据溢出了,每种数据类型都有其大小范围
  • 打赏
  • 举报
回复
自信男孩 2017-11-17
越界了。数值,尤其是有符号数,最高位(二进制)是符号位,若最高位位1,那么该数就是负值。 注意int
引用 8 楼 qq_29763887 的回复:
不同的数据类型都有自己的范围呐,太大了计算机肯定会溢出了。
可以参考一下这个。 或者引入<limits.h>文件,或直接找到这个文件,找到常用类型的取值范围。
  • 打赏
  • 举报
回复
weixin_40926388 2017-11-16
数据溢出了 改成 long long 或者 double 类型应该可以
  • 打赏
  • 举报
回复
paschen 版主 2017-11-12
不同类型变量有各自的存储范围,太大会导致溢出
  • 打赏
  • 举报
回复
das白 2017-11-12
装不下溢出了 变量存储空间有限
  • 打赏
  • 举报
回复
这是补码的问题。
  • 打赏
  • 举报
回复
destory27 2017-11-12
比如 char (127)下一位 (-128) 0111 1111(127) 1000 0000 (127 + 1) = (-128)
  • 打赏
  • 举报
回复
CT8100 2017-11-12
用数组来装,分开装。
  • 打赏
  • 举报
回复
Nxhivo 2017-11-12
怎么改才能不会溢出?
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ 语言
加入

6.0w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2017-11-12 11:41
社区公告
暂无公告