C语言基础篇(二)
一数据类型-浮点型
1.浮点数据
浮点数据类型分为单精度(float)和双精度(double)
数据类型 | 大小 | 精度 |
---|---|---|
float | 4 | 6 |
double | 8 | 15 |
2.浮点数的存储方式(以float为例介绍)
float类型系统会分配4个字节(32位),其中第一位为符号位,0为正1为负,然后8位为指数位,最后23位为尾数位。
例:将8.5存储入计算机
a.写出8.5的二进制形式
1000.1
b.将二进制写为科学计数法形式
1.0001*2^3
那么符号位为0,指数为3,尾数为0001.
注:由于指数也可以为负数,不能再加一位符号位,所以指数应加127再存入指数位中,小于127为负数,大于127为正数。尾数位有23位,尾数不够在尾数后补0.
8.5的存储方式为:01000001100010000000000000000000
3.大端存储/小端存储
大端存储:第地址放高数据 ——例:PC 、inter
小端存储:第地址放低数据 ——例:手机、网络
二.运算符
1.运算符优先级
用()可以改变优先级。
2.i++/++i的区别
a.在一个语句外,i++和++i都表示i自加1,结果没有区别
b.在一个语句内,i++是先赋值后自加,++i是先自加再赋值
3.&&、||
短路问题:
if(a&&b) 若a为真则继续执行b,若a为假则不执行b语句。
例:
int i=0;
for(i++&&++i)
程序不会执行++i.
if(a||b) 若a为真则不执行b,若a为假则继续执行b.
例:
int i=1;
if(i++||++i)
程序不会执行++i.
4.sizeof()
例:sizeof(i++)、sizeof(函数)会执行括号里面的东西吗?
不会,因为sizeof()不是函数是运算符,它是求()里边数据类型的大小,sizeof()是在编译期
确定的,在转变成汇编时sizeof()就被具体的数字代替了。