文章目录
第一点 整型和浮点型的差别
windows操作系统,64位机中,
char: 1个字节
short: 2个字节
int: 4个字节
long: 8个字节
//正确定义
static float Fen_Zi = 0;
float Fen_Mu = 200; //每个姿态的运动周期 200*7 = 1400ms
static float Percentage = 0;
static uint8_t State_N = 1;
uint8_t flage;
//错误定义
static float Fen_Zi = 0;
float Fen_Mu = 200; //每个姿态的运动周期 200*7 = 1400ms
static uint8_t Percentage = 0;
static uint8_t State_N = 1;
uint8_t flage;
这样定义Percentage一直会是0,直到等于200 再直接把数据传送给舵机
第二点 在stm32f103中硬件不支持浮点数运算
在定义中尽量减小浮点数的出现
在计算中,适当的放大或者缩小变量
第三点 注意有符号号整型 int 和无符号整型 uint 的使用
第四点 在宏定义浮点数时在后定义的浮点数后面加一个f
#define 1.2f
第五点 整型和浮点型之间的运算
两个整型相除 得到是整型小数部分舍去
只要有一个是浮点数 小数部分就不会舍去
第六点 字符 和 浮点型 整型 之间的运算
#include <stdio.h>
int main(void) {
int a = 0;
a = 'A'+1.6;
printf("%d",a);
return 0;
}
运行结果是 66
所以 字符与整形之间的 加法是将字符转为十进制"ACSII"
#include <stdio.h>
int main(void) {
int a = 0;
a = 'A'*1.6;
printf("%d",a);
return 0;
}
运行结果是104
所以 字符与整形之间的 乘法是将字符转为十进制"ACSII"
以此类推
第七点 自增 自减
#include <stdio.h>
int main(void) {
int a = 0;
int b=++a;
printf("%d",b);
return 0;
}
结果 b = 1
#include <stdio.h>
int main(void) {
int a = 0;
int b=a++;
printf("%d",b);
return 0;
}
结果 b= 0;
可见,操作数在运算符的前 (先赋值后运算);操作数在运算符的后 (先运算后赋值)
第八点 取余
取余运算在程序设计中都有着广泛的应用,例如判断奇偶数的方法就是求一个数字除以2 的余数是1 还是0。在进行取余运算时,运算结果的正负取决于被除数(%左边的数)的符号,与除数(%右边的数)的符号无关。
如:(-5)%3=-2,而 5%(-3)=2。
参考文章
1.c语言不同数据类型之间的运算(隐式转换、整型提升、强制类型转换、不同类型之间的运算)
2.C语言不同数据类型的混合运算
3.c语言中字符的加减运算,c语言算术运算符