51单片机c语言计算两个unsigned int型数据的乘积结果髙两位溢出丢失(乘积的数据类型是unsigned long)
发布网友
发布时间:2022-08-17 06:30
我来回答
共2个回答
热心网友
时间:2023-10-10 15:03
你把其中一个变量先放进 长整形变量中(数据类型是unsigned long), 就不会出现结果是整形了
热心网友
时间:2023-10-10 15:03
typedef unsigned long u32;
typedef unsigned int u16;
typedef unsigned char u8;
u32 s;
u16 a,b;
a = 0x7fc;
b = a;
s = a*b;
这样做即可,以后在单片机中这样定义简化代码,易于读懂。
可追问,数据溢出是一个比较麻烦的事情,有的时候需要分很多步去解决。