不同类型变量运算规则。
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也是一个负数,最终的结果跟我们想要的不一致。
总结:
在算数运算操作时,应该避免使用不同类型的直接运算,特别注意无符号数和有符号数之间的运算,可能出现意料之外的运算结果
在C语言中,无符号数与有符号数进行运算时,有符号数会被转换为无符号数进行计算。这可能导致预期外的结果,尤其是在有符号数为负时。避免这种问题的最佳实践是在混合类型运算时进行类型转换,确保运算的正确性。
676

被折叠的 条评论
为什么被折叠?



