问题补充说明:就像知道int的取值范围在内存中分配2个字节 也就16位的二进制-32768 怎么来的32767又是怎么来的0111 1111 1111 1111 我知道最高位代表符号位 上面的十进制为 32767最小取值应该是最小的负数1111 1111 1111 1111 搞晕了 可能给我说明一下!
C语言中int的取值来自范围为:-2147483648~2147483647
解释如下:
int类型在C语言中占4个字节,即32个二进制位。
当表示正数时,最360问答高位为符号位(符号位为0),最大的正数是0111111111111111111111价老哪孩款1111111111即2^31-1=2147483647
当表示负数时,最高位为符号位训(符号位为1),最小的负数是10000000000000000000000000000000而在计算机中是以补码的形式存储的,C语言规定10000000000000000000000000000000的补码为-2147483648
所以C语言中int的取值范围为:-2147483648~2147483647