[MCU] 为什么右移?

[复制链接]
 楼主| shimx 发表于 2020-9-11 21:18 | 显示全部楼层 |阅读模式

MD=(long)Us_value*(long)4096/(long)ED;
.........
Tm=(long)MD*(long)Sin_value1 >>15
Tl=(long)MD*(long)Sin_value2 >>15
Tm=(long)T12_PR*(long)Tm  >>12
Tl=(long)T12_PR*(long)Tl>>12


这里的>>是右移的意思 关键是为什么右移
jiaxw 发表于 2020-9-11 21:22 | 显示全部楼层
这是定点数的变换.
 楼主| shimx 发表于 2020-9-11 21:26 | 显示全部楼层
能详细说说吗
jiaxw 发表于 2020-9-11 21:31 | 显示全部楼层
为了计算精度, 好多参数如 Us_value, Sin_value1 都是带一定小数位数的定点数.
spark周 发表于 2020-9-11 21:34 | 显示全部楼层
嗯,计算后移位以还原整数
 楼主| shimx 发表于 2020-9-11 21:52 | 显示全部楼层
这个跟数据类型相关系的。
liliang9554 发表于 2020-9-11 21:55 | 显示全部楼层
计算后移位以还原整数
heweibig 发表于 2020-9-11 22:00 | 显示全部楼层
这个跟所用的CPU的位数相关系的
yinxiangh 发表于 2020-9-11 22:04 | 显示全部楼层
数据右移是为了更好的进行其他数据操作的
 楼主| shimx 发表于 2020-9-11 22:10 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部