你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的右移

[复制链接]
zhouqidashen 提问时间:2017-8-19 13:24 /
小弟最近在用STM32F030C6T6芯片完成电机的SVPWM控制。现在发现算法中,运行速度很慢。打算将所有的除法运算改成移位运算。一般的,无符号数的右移几位和除以2的几次幂是等效的。但是,在STM32里面,有符号数的右移也和除法运算等效吗?
收藏 评论6 发布时间:2017-8-19 13:24

举报

6个回答
Dandjinh 回答时间:2017-8-19 17:49:26
楼上说错了,无论有符号数还是无符号数,移位的结果都是一样的,这也是为什么计算机采用补码的原因。
有符号数的右移最高位补的是符号位,无符号数的右移补的是0,最后的结果都是除以相应的数。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

owenqll 回答时间:2017-8-19 14:15:29
有符号数右移和除法运算肯定不等效,你可以先用位运算把符号位保存,再去掉符号位进行位运算
五哥1 回答时间:2017-8-20 00:10:03
板凳正解
pythonworld 回答时间:2017-8-20 06:33:47
本帖最后由 pythonworld 于 2017-8-20 06:37 编辑

确实如二楼所说,以3和-3为mbed里显示的结果。这个之前没注意,学习了!!!
3.jpg
-3.jpg

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

zhouqidashen 回答时间:2017-8-22 09:33:03
感谢楼上们的大哥们的回答,小弟在STM32F030芯片中,将每要移位的数都加了括号,如(Period>>15),发现有符号数和无符号数都成功实现右移
张亚飞 回答时间:2017-8-22 09:51:53
2楼正解。楼主的帖子让我注意到平时不注意的细节。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版