取值范围意味着这个变量能够存放的最大值和最小值是什么,超出了或者太小了,都是放不进去的。
那么这个值要如何计算呢?就要从二进制的单位“比特(bit)”位说起了。
内存机构的最小寻址单位——字节(Byte)。
我们约定俗成如下图所示,即一个字节是由八个比特位组成的,同时每个比特位只能存放二进制数,也就是每个比特位只能存放0或1。
一个字节可以表示的最大的数就是八个1。
其对应的十进制如下图。
其计算方法为。
上代码测试一下,因为这里int占4个字节,所以对应的十进制就是2的32次方减一,加unsigned是要去掉其中的符号位。
#include <stdio.h>
#include <math.h>
int main(){
unsigned int result = pow(2, 32) - 1;
printf("result = %u\n", result);
return 0;
}
运行结果。
补码的计算方法。
注:如果觉得有用的话,记得点赞收藏哦!