我试图用百分比来表示电池电压。我的电池级别是(全球) uint16 in mV。我有一个16位的CPU。这是我的代码:
static uint8 convertBattery(void){
uint16 const fullBattery = 3000; /* 3V = 3000mV */
uint8 charge;
charge = ((battery*100)/fullBattery);
return charge;
}正如您所看到的,在整数除法中,我先将分子乘以100,从而将整数除以整数。
对于battery = 2756,我的电荷值计算为04,这是意外的。我花了很长时间在这个相当琐碎的任务上,没有取得任何进展。有人能告诉我问题出在哪里吗?
谢谢。
发布于 2015-06-15 14:14:51
电池*100的中间结果对于uint16来说太大了,所以会溢出。
https://stackoverflow.com/questions/30846925
复制相似问题