一 浮点数及其存储方式
(1)浮点类型:float(单精度)double(双精度),定义int a=10,内存会分4个字节给变量a,定义float=12.5f,首先也占四个字节,但内存存储有所不同:
精度计算:最大位数-1=实际尾数 例:0~90 最大精度为1
符号位:0 表示正号;1 表示负数。
指数:取值范围为-127~128;运算方式为 实值+127;
尾数:小数点后的数,剩余字位用零补位;
精度:尾数表示精度 尾数越多越精确
例:
12.5 二进制 = 1100.1 = 1.1001*10^3
符号位: 0 指数:127+3=130 即:1000 0010 尾数:1001+19个0
(2) 大小端
0*12345678
12 34 56 78 低地址放高数据 大端 如:手机 网络;
87 65 43 21 低地址放低数据 小端 如:PC inter.
二 运算符
():提升优先级(2+3)*5 函数的使用;
[]:数组下标,通过下标去访问,越界问题等于长度会出现;
.号,->:定义一个结构体,只用在结构体;
!: 真和假,0表示假,非0表示真,if(10)也表示真;
逻辑运算符:&& 表且; || 表或;
位运算符:针对二进制
ex: 11 0000 1011;
13 0000 1101;
~ 按位取反:
ex: ~11 1111 0100;
~13 1111 0010;
11&13 0000 1001(同1异0); 11|13 0000 1111(异同都1)
11^13 0000 0110//按位异或(同取反,异取1)
>> 右移,<< 左移
ex: 11>>3 11向右移三位
11>>1 0000 1011 0000 0101 5
11>>2 0000 1011 0000 0010 2
11<<2 0000 1011 0010 1100 44
11<<1 0000 1011 0001 0110 22
ps:右移补符号位,左移补零.
*和&
int =10;
int *P=&a; * :乘法 指针 解引用
*p=20;
sizeof()既是关键字又是运算符,不是函数。
三 C语言的标识符和关键字.
1.由字母、数字、下划线组成。且第一个字母必须是字母或下划线(少用);
2.不能使用关键字;
3.大小写敏感。