迪文科技论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: wangshaoqi

【提问】连续读写变量问题

[复制链接]

4

主题

17

回帖

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2023-8-25 16:07:11 | 显示全部楼层
您好,我没用hdmac这个乘法函数了,我是直接相乘的,我找到一个问题是,如果乘数是16位,结果是32位,显示就不正常,如果乘数是32位,结果也是32位,结果就正常,我刚才的回复附的代码,您可以试下
回复

使用道具 举报

2

主题

1228

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10476
发表于 2023-8-25 16:59:41 | 显示全部楼层
wangshaoqi 发表于 2023-8-25 16:07
您好,我没用hdmac这个乘法函数了,我是直接相乘的,我找到一个问题是,如果乘数是16位,结果是32位,显示 ...

您好这可能是Keil不够智能导致的,现代的IDE都能自动识别 类型,准确隐式转换,可Keil4没有。所以我们需要明确类型,强制转换。int计算,输出long型结果,还需要考虑int的范围,尽可能提前将int(2字节)转成long(4字节),避免溢出。

改为
jieguo = (unsigned long)num1*num2;
回复

使用道具 举报

4

主题

17

回帖

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2023-8-25 17:17:05 | 显示全部楼层
zzs999k 发表于 2023-8-25 16:59
您好这可能是Keil不够智能导致的,现代的IDE都能自动识别 类型,准确隐式转换,可Keil4没有。所以我们需 ...

恩恩,是的,我按照您的方式改了,ok了,您提到现代的IDE,想问一下,您推荐用什么IDE,3Q
回复

使用道具 举报

2

主题

1228

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10476
发表于 2023-8-28 08:56:45 | 显示全部楼层
wangshaoqi 发表于 2023-8-25 17:17
恩恩,是的,我按照您的方式改了,ok了,您提到现代的IDE,想问一下,您推荐用什么IDE,3Q ...

都可以的,主要用keil来编译
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-7-10 10:37 , Processed in 0.022555 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表