(1)数据类型的大小(字节数) 会 影响 数据类型的取值范围
short
unsigned short
0000 0000 |0000 0000 // 0 最小值
1111 1111 |1111 1111 // 2^16 - 1 = 65,536 - 1 = 65535
+ 1
1 0000 0000 |0000 0000 //2^16
signed short [-32768,32767]
//非负数
0|000 0000 0000 0000 //0
0|111 1111 1111 1111 //2^15 - 1 = 32768 - 1 = 32767
1|000 0000 0000 0000
1|000 0000 0000 0000 //原码值 -0 //这个值比较特殊 -专门规定了一下,只有这一个值,符号位也是数值位 //-32768
1|111 1111 1111 1111 //
1|000 0000 0000 0001 // - 1
int
unsigned int
0000 0000 |0000 0000|0000 0000 |0000 0000 // 0 最小值
1111 1111 |1111 1111|1111 1111 |1111 1111 // 2^32 - 1 = 4,294,967,295
signed int
0|000 0000 |0000 0000|0000 0000 |0000 0000 // 0
0|111 1111 |1111 1111|1111 1111 |1111 1111 // 2^31 - 1 = 2,147,483,647
1|000 0000 |0000 0000|0000 0000 |0000 0000 // - 2^32 = -2,147,483,648
1|111 1111 |1111 1111|1111 1111 |1111 1111 // - 1
(2)整型使用时,可能出现的问题
溢出 ---整型的溢出
向上溢出 和 向下溢出
(3)浮点类型的数据:
1.浮点型的变量
float //单精度类型 4 字节
double //双精度类型 8 字节
2.类型大小 查看
printf("sizeof(float) = %ld\n",sizeof(float));
3.浮点型常量
1.23 //小数形式
1.23e3 //科学计数法的形式 1.23*10^3
1.23E3
1.23E-3
注意: e 后面的 数字 ,可以是负数,但是不能是小数
(4)浮点数存储
6.125
step1: 将十进制形式的小数,转换为二进制形式的小数
整数部分 ---- 辗转相除法 (除2取余法)
110
小数部分 --- 乘2取整法
0.125 * 2 = 0.25 ---- 0
0.25 * 2 = 0.5 ---- 0
0.5 * 2 = 1.0 ---- 1
二进制形式的小数:
110.001
step2:把二进制形式的小数 写成 科学计数法形式
110.001 --> 1.10001 * 2^2
step3: 按照 IEEE 754标准存储
float型:
符号位(1bits)|指数位(阶码位)(8bits)|尾数位 (23bits)
0 | +127偏移量 |
2 + 127
1000 0001 10001 不足的位 统统补 0
double型:
符号位(1bits)|指数位(阶码位)(11bits)|尾数位 (52bits)
0 | +1023偏移量 |
1000 0001 10001 不足的位 统统补 0
注意:
1. double因为能存储的 尾数更多,所以精度更高
2. 代码中出现的常量 或者 变量,一定有其对应的数据类型
小数 默认识别为 double类型
3.浮点型数据比较,尽量是统一精度
4.可以显式的,指定常量的类型
0.9f //f表示 将0.9识别为 float类型
(5)字符型
"tom"
计算机中能存储的数据 --- 0101 二进制
'a' <--编码---> 0101010 //代表 'a'
ASCII --- 用 数字 对128个符号 进行了编码
0~32 不可见字符 主要起到控制作用
33~127 可见字符
1.字符型变量
char
2.字符型常量
'a' //单个字符
3.字符型数组,是怎么存储在计算机的
char c = 'a';
'a' <---> ascii 编码值(整型数字)
所谓的 'a' 字符存到计算机,实际上存的是 'a' 字符对应 ascii码的值 (二进制形式)
4.本质上其实还是 整型数据
char类型其实是一个 整型 (tiny int)
char类型与整型是通用的
5.字符型的大小
1字节
(6)转义字符:
'n' //字符 n
'\n' //整体当做一个字符来看 --- \ 起转义的作用
//表示 一个 换行符 --起到换行的效果