栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言vs编译器对负数的移位逻辑

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言vs编译器对负数的移位逻辑

最近在忙着导师的一个大项目,我这边要把一个matlab通信系统算法搬到我们项目组的特定处理器平台上。这个处理器比较无语的是,只支持16位定点数的运算。

言归正传,我在c语言的移位操作时,发现C语言移位操作是有前提条件的。

移位分为逻辑移位和算术移位。我其实只需要逻辑移位,我想当然的以为对于任何数都可以移位(博主c语言确实太差了,羞!),对比结果的时候,发现数据总有点小误差,理论上不应该有误差,结果应该时完全对的上。然后一顿断点分析,发现就是这个移位操作。

C语言编译器只能对无符号数进行逻辑移位操作,当要对负数进行逻辑移位时,C语言编译器会出现混乱,就是你以为进行了逻辑移位,但其实可能进行的是算术移位。

嗯,其实找到问题,也就可以说,问题解决了。更详细的关于解决这个移位操作的答案,大家随便到网上找找就可以解决啦!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/385077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号