一、数据类型的大小(字节数)会影响数据类型的取值范围
unsigned short (无符号数)
0000 0000 0000 0000 //最小值0
1111 1111 1111 1111 //最大值2的16次方 - 1 = 65535
signed short (有符号数)
0 000 0000 0000 0000 //0 第一位为符号
0 111 1111 1111 1111 //最大值32767
1 000 0000 0000 0000 //最小值 - 32768 存的是补码 要求出原码 原码数值 - 0(特此规定 这个值的符号位也当做数值位使用)
1 111 1111 1111 1111 // - 1
二、整型使用引起的问题
1.整型的溢出
a.向上溢出
b.向下溢出
三、浮点类型的变量
1.分类
float //单精度类型 4字节
double //双精度类型 8字节
2.浮点型常量
1.23 //小数形式
1.23e3 /E3/e-3 //科学计数法 1.23*10^3 (e后面的数字可以是负数但不能是小数)
3.浮点数存储
例:6.125
Step1:将十进制的小数转换为二进制(整数部分 辗转相除,小数部分 乘二取整法)
6 = 110
0.125 : 0.125*2=0.25*2=0.5*2=1
0.125 = 001
6.125 = 110.001
Step2:将二进制的数字写成科学计数法形式
110.001 ---->1.10001 * 2^2(因为是二进制)
Step3:按照IEEE 754 标准存储
float :符号位(1bit) | 指数位(8bits) |尾数位(23bits)
0 | 2+127偏移量 | 不足的补0
0100 0000 1100 0100 0000 0000 0000 0000
4 0 C 4 0 0 0 0
注意:
1.double 因为能存储的尾数更多,所以精度更高
2.代码中出现的常量或者变量,一定有其对应的数据类型
小数默认识别为double 加个f 就会是别为float
3.比较时,可能无法做到准确比较(如0.9),浮点数据的比较尽量统一精度
4.可以显式的指定常量的类型
四、字符型
1.存储方式:
利用ASCII对128个符号进行编码( 0~32不可见字符 起控制作用 33~127 可见字符)
2.字符之间的转换
大小写转化 小写字母-32=大写字母
字符--->数字 'n'-’0‘(48)
3.转义字符:
注意:'abcde' 类似这样单引号阔气来的多字街数据会被当做一个整体的数值而显示效果根据定义类型的大小有关
五、数据运算
1.算数运算:
+ - * / % ++ --
2.表达式:
由 运算符 和 运算数 组成的字符序列
注意:
凡是表达式,必然有值,必然有其对应的数据类型。
表达式的最终结果的类型有专门的规则。