int溢出会变成什么

[复制链接]
查看11 | 回复4 | 2020-1-23 15:15:14 | 显示全部楼层 |阅读模式
int溢出会变成溢出值和最大可表示范围值的差值。当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。当最大值加上 1 时,结果反而变成表示范围中最小的值;当最大值加上 2 时,结果变成表示范围中次小的值,这就是int数据类型的溢出。这个情形会出现一个循环。扩展资料:若是想避免这种情况的发生,在程序中就必须加上数值范围的检查功能,或者使用较大的表示范围的数据类型,如长整型。可以在该表达式中的任一常量后加上大写的“L”,或是在变量前面...
回复

使用道具 举报

千问 | 2020-1-23 15:15:14 | 显示全部楼层
int溢出超出了int类型的最大值,如果是两个正数相加,溢出得到一个负数,或两个负数相加,溢出得到一个正数的情况,就叫溢出。总结一下:获取与编译器相关的int、char、long的最大值的方法分别为1) 使用头文件里面分别有关于最大、最小的char 、int、long的值。2) 分别将-1转换成对应...
回复

使用道具 举报

千问 | 2020-1-23 15:15:14 | 显示全部楼层
两个正数相加得到一个负数,或两个负数相加得到一个正数的情况,就叫溢出。代表超出了该类型数值的最大值,进位时超过最大值,符号位就会进为1,32位都是1,由于第一位是符号位,所以是负数。加1就会变成32个0。...
回复

使用道具 举报

千问 | 2020-1-23 15:15:14 | 显示全部楼层
基础问题啊兄弟,负数是以补码形式存储的,因此-1就是二进制的全1...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行