首页 文章

使用short int时突然跳转值

提问于
浏览
2

我试图运行此代码,我使用短int .

int main() {
    short int i=0;
    while(++i)
        printf("%u\n", i);
}

输出(使用短int):

1     
 2
 3...
 32767
 4294934528
 .
 .
 4294967295(last value)

为什么在32767之后会出现突然跳跃的任何解释?

我正在使用linux(32位)操作系统 .

2 回答

  • 0

    有符号整数溢出是未定义的行为 . 你的程序推送 i 超出了 short 中存储的范围,所以程序可以自由地做任何事情 .

  • 2

    带符号短路的范围为-32768到32767,无符号短路的范围为0到65535.因此,您超出了签名 int short 的数据大小 .

相关问题