你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
STM32的右移
[复制链接]
zhouqidashen
提问时间:2017-8-19 13:24 /
小弟最近在用STM32F030C6T6芯片完成电机的SVPWM控制。现在发现算法中,运行速度很慢。打算将所有的除法运算改成移位运算。一般的,无符号数的右移几位和除以2的几次幂是等效的。但是,在STM32里面,有符号数的右移也和除法运算等效吗?
赞
0
收藏
0
评论
6
分享
发布时间:2017-8-19 13:24
举报
请先
登录
后回复
6个回答
Dandjinh
回答时间:2017-8-19 17:49:26
a0a.1 32b0c
楼上说错了,无论有符号数还是无符号数,移位的结果都是一样的,这也是为什么计算机采用补码的原因。
有符号数的右移最高位补的是符号位,无符号数的右移补的是0,最后的结果都是除以相应的数。
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
2
评论
回复
支持
2
反对
0
owenqll
回答时间:2017-8-19 14:15:29
a0a.1 32b0c
有符号数右移和除法运算肯定不等效,你可以先用位运算把符号位保存,再去掉符号位进行位运算
赞
0
评论
回复
支持
反对
五哥1
回答时间:2017-8-20 00:10:03
a1024a.1 32b0c
板凳正解
赞
0
评论
回复
支持
反对
pythonworld
回答时间:2017-8-20 06:33:47
a0a.1 32b0c
本帖最后由 pythonworld 于 2017-8-20 06:37 编辑
确实如二楼所说,以3和-3为mbed里显示的结果。这个之前没注意,学习了!!!
评分
参与人数
1
ST金币
+2
收起
理由
zero99
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
zhouqidashen
回答时间:2017-8-22 09:33:03
a0a.1 32b0c
感谢楼上们的大哥们的回答,小弟在STM32F030芯片中,将每要移位的数都加了括号,如(Period>>15),发现有符号数和无符号数都成功实现右移
赞
0
评论
回复
支持
反对
张亚飞
回答时间:2017-8-22 09:51:53
a0a.1 32b0c
2楼正解。楼主的帖子让我注意到平时不注意的细节。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
有符号数的右移最高位补的是符号位,无符号数的右移补的是0,最后的结果都是除以相应的数。
评分
查看全部评分
确实如二楼所说,以3和-3为mbed里显示的结果。这个之前没注意,学习了!!!
评分
查看全部评分