c/c++语言开发共享溢出之后的值

学习C语言过程中打过这样一串代码: 出现如下情况: 当然,我知道数值过大会溢出,但为什么溢出后会是这些值,最后一直0循环,我不知道,最后在“编程中国”发帖得到了答案,答案如下: int是有符号的,占两个字节16位,下面以一个8位的二进制数来说(最高位为符号位) 正数:00000001 到 01111 …

学习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,这好比一个环,溢出时在环内循环

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/604947.html

(0)
上一篇 2021年5月13日
下一篇 2021年5月13日

精彩推荐