社区
C语言
帖子详情
嵌入式操作系统(比如Nucleus、Vxworks、OSE等)中的移位运算和乘2的N次方是不是一样的?
jack_wq
2009-12-11 08:50:58
最近想通过定点运算实现一个算法,为了尽量提高效率,打算采用移位运算,想问一下,在嵌入式操作系统(比如Nucleus、Vxworks、OSE等)中的移位运算和乘2的N次方是不是一样的操作?这个和操作系统有关还是编译器的问题?是不是有的编译器会进行优化后,编译的结果就相同了?
哪位大侠能给详细的解释一下,谢谢!
...全文
287
15
打赏
收藏
嵌入式操作系统(比如Nucleus、Vxworks、OSE等)中的移位运算和乘2的N次方是不是一样的?
最近想通过定点运算实现一个算法,为了尽量提高效率,打算采用移位运算,想问一下,在嵌入式操作系统(比如Nucleus、Vxworks、OSE等)中的移位运算和乘2的N次方是不是一样的操作?这个和操作系统有关还是编译器的问题?是不是有的编译器会进行优化后,编译的结果就相同了? 哪位大侠能给详细的解释一下,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
deng1243
2009-12-11
打赏
举报
回复
一样的
极深研几
2009-12-11
打赏
举报
回复
关于基本运算的优化,这个需要编译提供这样的支持。
极深研几
2009-12-11
打赏
举报
回复
C/C++的语法规定位运算的规则,而编译器的厂商必须实现这个规则。规则本身与平台没有关系,所以你大可放心。
z569362161
2009-12-11
打赏
举报
回复
应该是和编译器相关
highball
2009-12-11
打赏
举报
回复
和符号有关系吗?
猫已经找不回了
2009-12-11
打赏
举报
回复
移位的操作,绝对够快,如果可以,尽量用移位而不是用乘方,谁知道编译器有没有优化呢。
jernymy
2009-12-11
打赏
举报
回复
关注
james_hw
2009-12-11
打赏
举报
回复
[Quote=引用楼主 jack_wq 的回复:]
最近想通过定点运算实现一个算法,为了尽量提高效率,打算采用移位运算,想问一下,在嵌入式操作系统(比如Nucleus、Vxworks、OSE等)中的移位运算和乘2的N次方是不是一样的操作?这个和操作系统有关还是编译器的问题?是不是有的编译器会进行优化后,编译的结果就相同了?
哪位大侠能给详细的解释一下,谢谢!
[/Quote]
理论上移位运算和乘2的N次方是一样的结果,但是否一样的操作则不一定,由编译器决定。如果有把握的话,还是移位好,移位的效果是一样的,乘法编译出来的结果有可能不同,最快也就是移位的效果。
Arnold9009
2009-12-11
打赏
举报
回复
跟操作系统无关
与编译器有关,一般来说,编译器优化后的结果是一样的
不过有的CPU带有硬件乘法器,这种情况下编译器编译出来的结果可能不一样,移位的速度肯定比乘法快
jack_wq
2009-12-11
打赏
举报
回复
[Quote=引用 2 楼 linwendong1982 的回复:]
右移n位相当于除以2的n次方,左移n位相当于乘以2的n次方,谭浩强书里写着。
[/Quote]
这个结果我是知道的,我是想关注一下对于编译器来说,实际运行的方式是不是也是一样的(比如乘512和移位运算都按照移位操作)?
我怀疑有的编译器不会做优化,也就是说可能有的编译器会分别按照乘法和移位运算,有的编译器统一按照移位运算以提高效率。
不知道标准C在这方面是否有规定,编译器具体是如何处理的呢?
gjt19910817
2009-12-11
打赏
举报
回复
应该是这样的吧。
guzhijie1981
2009-12-11
打赏
举报
回复
个人感觉和 编译器有关,另外我想一般的CPU是支持移位运算的;和OS没有多少关系 吧;
建鼎呓语
2009-12-11
打赏
举报
回复
理论上是一样,不过得到相应芯片上去检验,正数、负数移位后的情况。不过标准C语言是带符号移位,左移最低位补0,右移最高位补原先的最高位。
linwendong1982
2009-12-11
打赏
举报
回复
右移n位相当于除以2的n次方,左移n位相当于乘以2的n次方,谭浩强书里写着。
Steven_0610
2009-12-11
打赏
举报
回复
关注
一种
嵌入
式
实时
操作系统
Nucleus
Plus
一种
嵌入
式
实时
操作系统
Nucleus
Plus
常见的
嵌入
式
系统
常见的通用型
嵌入
式
操作系统
有Linux、
VxWorks
、Windows CE.net等。常用的专用型
嵌入
式
操作系统
有Smart Phone、Pocket PC、Symbian等。按实时性可分为两类:实时
嵌入
式
操作系统
主要面向控制、通信等领域。如WindRiver...
论文研究-
嵌入
式
操作系统
移植技术研究.pdf
嵌入
式
硬件的更新往往造成相应软件系统需要重新开发。...将基于EP7312处理器的
Nucleus
嵌入
式
操作系统
移植到基于XScale处理器的硬件环境
中
的过程,可以作为
嵌入
式
操作系统
在不同处理器上移植的参考。
嵌入
式
操作系统
Nucleus
触摸屏驱动的开发.doc
嵌入
式
操作系统
Nucleus
触摸屏驱动的开发.doc
嵌入
式
系统/ARM技术
中
的
嵌入
式
实时
操作系统
Nucleus
PLUS在S3C2410A上移植的实现
摘 要:本文在简要介绍
嵌入
式
实时
操作系统
内核
Nucleus
PLUS和基于ARM920T内核的
嵌入
式
微控制器S3C2410A后,详细地论述了
Nucleus
PLUS在S3C2410A上的移植过程和方法,最后指出了
Nucleus
PLUS 在ARM9上移植的重点和...
C语言
69,380
社区成员
243,074
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章