-
为什么计算的结果不对
用的是STC8A8K64D,定义了一个u16的变量,计算后通过串口发送。u16tmp;tmp=(2000-1000)*2999/1000;为什么串口发送tmp为0xFFF1。将tmp定义为u32。u32tmp;tmp=(2000-1000)*2999/1000;串口发送数据为0xFFFFFFF1。再将tmp直接赋值为2999000,tmp=2999000,串口输出数据为0x2DC2D8(2999000)。这是什么原因嘞?
2022-07-12 2
用的是STC8A8K64D,定义了一个u16的变量,计算后通过串口发送。u16tmp;tmp=(2000-1000)*2999/1000;为什么串口发送tmp为0xFFF1。将tmp定义为u32。u32tmp;tmp=(2000-1000)*2999/1000;串口发送数据为0xFFFFFFF1。再将tmp直接赋值为2999000,tmp=2999000,串口输出数据为0x2DC2D8(2999000)。这是什么原因嘞?