不同类型变量运算规则。
1.无符号和有符号int类型之间运算规则
规则1:带符号数与不带符号数向运算,带符号数将优先转成不带符号数。
#include <stdint.h>
#include <stdio.h>
int main(void){
uint32_t cnt;
int16_t level;
float result;
result = a / b;
printf("a / b = %f\r\n", result);
return 0;
}
上述的例子中,cnt是无符号数,level是有符号数,得出的结果result也是无符号数。但是当level为负数时,显示我们期待的result = a / b也是一个负数,最终的结果跟我们想要的不一致。
总结:
在算数运算操作时,应该避免使用不同类型的直接运算,特别注意无符号数和有符号数之间的运算,可能出现意料之外的运算结果