unsigned int mileage=0;unsigned int SpeedVal=60;mileage=(Carmeter.SpeedVal*10000/3600);为什么mileage的打印会是15
时间: 2024-05-05 17:21:31 浏览: 131
浅谈防不胜防的unsigned int的运算
根据你提供的代码,我发现问题在于 `Carmeter.SpeedVal` 并没有被正确地使用。在这个表达式中, `Carmeter.SpeedVal` 应该改为 `SpeedVal`,因为 `SpeedVal` 是定义了一个车速值为60的无符号整型变量,而 `Carmeter.SpeedVal` 没有被定义。修改后的代码如下:
```c++
unsigned int mileage = 0;
unsigned int SpeedVal = 60;
mileage = (SpeedVal * 10000 / 3600);
printf("mileage = %d\n", mileage);
```
这样,`mileage` 的值应该是1666,而不是15。
阅读全文