0026 整型数据的溢出规律

名称: 0026 整型数据的溢出规律
作者: 丁进
时间: 2021.2.21

#include <stdio.h>
int main()
{
    for (int i = 2147483647, a = 0; a < 5; i++, a++)
    {
        printf("% d,溢出%d\n", i,i- 2147483647);
    }
    for (short i = 32767, a = 0; a < 5; i++, a++)
    {
        printf("% hd,溢出%hd\n", i, i - 32767);
    }
    for (char i = 127, a = 0; a < 5; i++, a++)
    {
        printf("% d,溢出%d\n", i, (char)(i - 127));
    }
    for (char i = -128, a = 0; a < 5; i--, a++)
    {
        printf("% d,溢出% d\n", i, (char)(i - (-128)));
    }
}

输出结果:

 2147483647,溢出 0
-2147483648,溢出 1
-2147483647,溢出 2
-2147483646,溢出 3
-2147483645,溢出 4

 32767,溢出 0
-32768,溢出 1
-32767,溢出 2
-32766,溢出 3
-32765,溢出 4

 127,溢出 0
-128,溢出 1
-127,溢出 2
-126,溢出 3
-125,溢出 4

-128,溢出 0
 127,溢出-1
 126,溢出-2
 125,溢出-3
 124,溢出-4

设数据类型的取值范围:max ≤ i ≤min,n为超过max的溢出部分;

整型数据溢出规律总结:
max+1=min
max+2=min+1
max+3=min+2

max+n=min+n-1
1.数据类型的取值范围max和min形成一个闭环;
max+1=min
2.上限溢出后显示的数据=min+n-1;
max+n=min+n-1 (此时n为正数)
3.下限溢出后显示的数据=max+n+1;
max+n=min+n-1 => min+n=max+n+1(此时n为负数)
4.上限溢出的数据=上限溢出后显示的数据-max;
max+n=min+n-1 => n=(min+n-1)-max;(此时n为正数)
5.下限溢出的数据=下限溢出后显示的数据-min;
min+n=max+n+1 => n=(max+n+1)-min;(此时n为负数)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值