特别是在C语言中,对数据的要求比较严格,对于我们自身而言,如果连数据的范围都不清楚,就很容易犯错,以下是我的一些理解,希望能让自己再加深下理解和记忆:
unsigned int a;
printf("%u",a); //能表示的最大数是2**32-1 也就是4294967295
很好理解,比如二进制的两位数最大能表示2**2-1=3.十进制同样,最大能表示10**2-1= 99.
最小的自然就是0了。
这是对于无符号的,那么:
int a;
printf("%d",a); //能表示的最大数就是2**31-1=2147483647;
//能表示的最小数是-(2**31)=2147483648;
如果在声明的时候没有刻意的去说明是无符号类型,通常系统都默认是有符号的去处理。
同样道理,如果对于char,long,也是一样的。
时间: 2024-10-11 07:11:55