一、数据类型
1.整型:修饰整数,有短整型(short)2个字节,整型(int)4个字节,长整形(long)4/8个字节,长长整形(long long)8个字节 ,一个字节有8位 数据存储是按位进行的 。
2.实型:修饰小数,有float double ,
float小数后面保留6~10位,单精度。
double 小数后保留10位以上,双精度
//存储了解:符号位 尾数 和 指数 9.325 假如:1001.1101 === 0.10011101 * 2^4 符合0是正,1是负
拓展:小数的存储方式按照科学计数法存指数和尾数
19.625
10011.101===1.0011101*2^4
1.0011101---尾数
4---指数
小数点之后的数转二进制:0.625*2取整直到小数点后为0
0.625*2取整----1.250 ---取1之后为0.25 小数点之后不为零,继续*2取整
0.25*2取整--------0.50-----取0之后0.50小数点之后不为零,继续*2取整
0.5*2取整---------1.0----取1之后0.0小数点之后为零,结束;
以取整的整数作为小数点之后的二进制0.101,如果有整数则加上整数的二进制
例如19.625转换成2进制为:10011.101
//实型都是有符号的,不能用unsigned 来修饰float 和double。
3.字符型: 字符型:char
//修饰单个字符 'c' ‘+’ 不要写成 c 'cs' ---错误写法
//char -- 1个字节
//存储原理:ASCII码表进行存储
//有符号:(signed) char,无符号 unsigned char;
二、数据存储
存储数据是按位存储的,但是数据又分为整数和负数
有符号 -- 默认的 signed + 数据类型
无符号 --- unsigned + 数据类型
unsigned short ---- 16位
0000 0000 0000 0000 ---- 0
1111 1111 1111 1111 ---- 65535
signed short ---- 16位
将最高位作为符号位 0代表正 1代表负
1位符号位+15位数据位
正数:0 000 0000 0000 0000 --- 0
0 111 1111 1111 1111 --- 32767
负数:1 000 0000 0000 0000 --- -0
1 111 1111 1111 1111 --- -32767
没有-0表达,向负方向扩展一位 -32768
存储范围-32768~32767
例子:
short floor1;//短整型 默认带符号,省略signed
unsigned short num1;//短整型 不带符号
unsigned int num2;//整型 不带符号
unsigned long num3;//长整形 不带符号
unsigned long long num3;//长长整型 不带符号
float money;//实型 默认带符合 不能用unsigned修饰
char key;//字符型 只能修饰单个字符 'c','+'
无符号的数据格式控制符:%u