【嵌入式C语言】四
5.3数据扩充的应用案例
若不进行强制类型转换,那么temp×1.2会变成doubole类型




5.4数据运算时发生溢出的危害
- 对于无符号溢出,会把溢出值与256求模
- 对于有符号溢出,编译器想怎么实现就怎么实现,上面是具体案例
溢出的危害
5.5数据扩充案例
负整数在数据扩充时的规则
负整数在向数值范围大的类型扩充时,扩充位会填1
因此d2扩充后就是0xFFFFFFFF,再或0x00010000不会是想像中的值
5.6 24000000U中的U是做什么用的?
常数10000在51单片机中默认是16位无符号,最大值为65535,当乘10后为100000,超过最大值,数据就会发生溢出,所以最终n获得的数值是溢出以后的数
解决办法:
在10000的后面加上UL,这样编译器就会按照unsigned long进行处理
6.1bool数据类型
bool数据类型的数值只有1和0两种,对应true和false;
- 定义bool数据类型最终目的是应用于条件判断语句和循环控制语句中;
- bool数据类型是在c99标准引入的,使用需要添加头文件*Include<stdbool.h>
- bool数据类型占用的空间是1个字节,并且只使用二进制的第-0位来表示0和1
bool数据类型的数值只有1和0两种,对应true和false
转换规则:任何非0数值转换为bool类型都为1
6.2关系运算符
6.3逻辑运算符及短路
6.4if语句的单分支结构
6.5if语句的双分支和多分支结构
6.6三元条件运算符
求最大值最小值时,可以用三元条件运算符使用宏定义进行封装