硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2992|回复: 5
收起左侧

[STM32H7] 如何快速计算(int64_t a) *( int64_t b)?结果也是int64_t

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2019-4-19 16:47:55 | 显示全部楼层 |阅读模式
大家好!
      目前我遇到一个64位乘以64位的问题,用STM32F767计算比较慢,请教一下如何提高计算速度?谢谢。
      int64_t   c;
      c= (int64_t  a) *( int64_t  b);
回复

使用道具 举报

6

主题

25

回帖

43

积分

新手上路

积分
43
发表于 2019-4-19 17:04:09 | 显示全部楼层
使用按位相乘!
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2019-4-19 17:16:31 | 显示全部楼层
直接转成双精度浮点算,毕竟支持硬件双精度。
回复

使用道具 举报

39

主题

929

回帖

1051

积分

至尊会员

积分
1051
发表于 2019-4-19 18:02:54 | 显示全部楼层
64*64还慢?你的数据量多大?
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2019-4-19 18:14:05 | 显示全部楼层
看下反汇编是不是乘累加指令实现的,32x32+64,如果是这种方式,应该是最快的了。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2019-4-19 18:15:04 | 显示全部楼层
是MDK开AC6的最高速度优化,IAR也是开最高速度优化,可以看看反汇编的代码
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 08:08 , Processed in 0.163039 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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