c语言中如何处理整数值的上溢和下溢

1、c语言中如何处理整数值的上溢。

#include <stdio.h>

int main(void)
{
    int i;
    int j = 1;
    
    for(i = 1; i <= sizeof(int) * 8 - 1; i++)
    {
        j *= 2;    
    } 
    printf("j = %d.\n", j - 1);  // 确定int型为正的上限
    
    int num = j - 1;
    
    printf("num: %d.\n", num);
    printf("num + 1: %d.\n", num + 1);  //在上限增加1
    printf("num + 2: %d.\n", num + 2);
    
    return 0;
}

 

2、c语言如何处理整数值的下溢

#include <stdio.h>

int main(void)
{
    int i;
    int j = 1;
    
    for(i = 1; i <= sizeof(int) * 8 - 1; i++)
    {
        j *= 2;    
    } 
    printf("j = %d.\n", j);  //j为int型整数值的下限
    
    printf("j - 1: %d.\n", j - 1); //下溢1
    printf("j - 2: %d.\n", j - 2); 
    
    return 0;
} 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐