我在理解C语言的数据类型方面遇到了一些困难。我正在学习一本C语言书籍,其中一个挑战要求计算一个short
类型可以存储的最大和最小值。
使用sizeof(short);
可以看到一个short类型占用2个字节。这意味着它是16位,可以存储两个数字,因为一个数字的二进制表示需要8位。例如,9将是00111001
,占用了一位。所以对于无符号数来说,范围不应该是0到99吗?带符号数则是-9到9?
我知道我是错的,但我不确定为什么。这里说最大值为(-)32,767(有符号)和65,535(无符号),可以点击这里查看更多信息。
short int,2个字节,16位,范围为-32,768 -> +32,767(16kb)