关于数据类型的取值范围的理解

以int类型为例spa

int类型通常为四个字节,共32位。it

int 用补码表示,补码表示中负数比正数多一个,最大值为2147483647 最小的数为 -2147483648,那么为何为多一个数呢,就是0的表示,只有+0才是正常的,-0被移作最小的那个int了。cli

符号为0为正,1为负,因此正数的最大值为01111111111,那么当这个最大的数加一有神马状况呢?就是变成了100000000000,这个数,其实按照取反加一来表示时,这个数应该是标准的-0,可是因为补码把这个改为了最小的负数,因此INT_MAX+1就是INT_MIN,记住正数最大加一后变最小的;二进制

上面说的这个climits这个头文件中,有INT_MAX和INT_MINim

正数的范围是0~2147483647,二进制就是0000000000~01111111111111111;img

负数的范围是-2147483648~-1,二进制就是1000000000~ 11111111111111111;文件

如图所示:

相关文章
相关标签/搜索