1613551 发表于 2023-2-23 08:33:04

关于储存溢出的问题

本帖最后由 1613551 于 2023-2-23 08:34 编辑

为什么a的值会等于0?我知道是溢出了,但是我忘了是什么原理了

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    char ch = 256;
    int a = ch;
    printf("%d", a);
    system("pause");
    return 0;
}

isdkz 发表于 2023-2-23 08:36:51

256 的二进制是 100000000

而 char 类型只占一个字节,也就是 8 位,所以最高位的 1 左溢了,只剩下那 8 个 0

所以 ch 只剩下 0 了,把 ch 的值赋给 a,也就是把 0 赋给 a

sfqxx 发表于 2023-2-23 17:56:25

抢到第3楼{:10_256:}

sfqxx 发表于 2023-2-23 17:56:51

学习一下
页: [1]
查看完整版本: 关于储存溢出的问题