你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
有符号数的右移最高位补的是符号位,无符号数的右移补的是0,最后的结果都是除以相应的数。
评分
查看全部评分
确实如二楼所说,以3和-3为mbed里显示的结果。这个之前没注意,学习了!!!
评分
查看全部评分