设为首页 加入收藏

TOP

溢出之后的值
2019-03-06 00:07:56 】 浏览:63
Tags:溢出 之后

学习C语言过程中打过这样一串代码:

#include<stdio.h>

int main()
{
    int i,num;
    
    for(i=1;i<=40;i++){
        num += num;
        printf("%d",num);
    }
    
    return 0;
}

出现如下情况:

当然,我知道数值过大会溢出,但为什么溢出后会是这些值,最后一直0循环,我不知道,最后在“编程中国”发帖得到了答案,答案如下:

int是有符号的,占两个字节16位,下面以一个8位的二进制数来说(最高位为符号位)
正数:00000001 到 01111111
负数:00000000 到 11111111
-0:1000 0000;+0:0000 0000
C规定-0为-128,所以当最大的正数01111111溢出就会变成1000000也就是-128,这好比一个环,溢出时在环内循环




编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一个C语言内存管理模块的实现 下一篇深度理解函数返回局部变量问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }