变量定义

1. int 基础概念
int 代表整型,默认是有符号类型 ; 主流编译器下 int 占用 4 字节(32 位二进制)。
注意点:1 字节 = 8 个二进制位。
示例:int a = 5; 内存中完整 32 位存储:0000 0000 0000 0000 0000 0000 0000 0101
2. int 的数值范围限制
int 固定只有 32 个二进制位,能表达的数字存在上限,分两种情况:
- 默认有符号 int 最高 1 位作为符号位(0 表示正数,1 表示负数),剩余 31 位存储数值。 取值范围:
-2147483648 ~ 2147483647 - 无符号 unsigned int 全部 32 位都用来存储非负数,无符号位。 32 位全 1 二进制:
1111 1111 1111 1111 1111 1111 1111 1111,对应十进制4294967295取值范围:0 ~ 4294967295
3. 更大范围的整型 long long int
若需要存储超出 int 上限的超大数字,使用 long long int(简写 long long):
- 占用 8 字节(64 位二进制),可表示的数值区间远大于 int;
- 同样支持无符号写法
unsigned long long int。
4. 数据类型的作用
int、unsigned int、long long int 都属于整型数据类型,写在变量名前,用于规定变量在内存中占用的空间大小、存储数字的正负属性、可存储数值的上下限。
还有一些数据类型:
| 类型 | 占用字节 | 二进制位数 | 取值范围 | 补充说明 |
|---|---|---|---|---|
| char | 1 字节 | 8 位 | signed char:-128 ~ 127unsigned char:0 ~ 255 | char 默认是否有符号由编译器决定 |
| signed char | 1 字节 | 8 位 | -128 ~ 127 | 明确有符号字符型 |
| unsigned char | 1 字节 | 8 位 | 0 ~ 255 | 无符号,仅存非负数 |
| short / short int | 2 字节 | 16 位 | -32768 ~ 32767 | 简写 short,默认 signed |
| signed short int | 2 字节 | 16 位 | -32768 ~ 32767 | 显式有符号短整型 |
| unsigned short int | 2 字节 | 16 位 | 0 ~ 65535 | 无符号短整型,16 位全 1 最大值 |
| int / signed int | 4 字节 | 32 位 | -2147483648 ~ 2147483647 | 最常用整型,默认有符号 |
| unsigned int | 4 字节 | 32 位 | 0 ~ 4294967295 | 32 位全 1 最大值 |
| long long / long long int | 8 字节 | 64 位 | -9223372036854775808 ~ 9223372036854775807 | 标准长整型,主流平台固定 8 字节 |
| signed long long int | 8 字节 | 64 位 | 同上 | 显式有符号长长整型 |
| unsigned long long int | 8 字节 | 64 位 | 0 ~ 18446744073709551615 | 无符号长长整型 |
课后练习可以自己定义几个不同的数据类型给它不一样大小的值打印出来看看



可以发现这些值打印都不对
因为都超出这个范围-2147483648 ~ 2147483647
加上 long long 就不会了因为它范围更大了

可以试试 unsigned int a=2147483659 和 unsigned int a= -2147483659 看看为什么