A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘张朋 于 2013-7-16 20:43 编辑

刚不小心搞错了,我想问的其实就是: 进行2<<3;和8<<1;的运算,相比之下那个效率更高呢?我有进行各运算10万次的实验,计算时间都差不多,所以想请教高手,那个更快?

评分

参与人数 1黑马币 +3 收起 理由
神之梦 + 3 神马都是浮云

查看全部评分

4 个回复

倒序浏览
本帖最后由 刘张朋 于 2013-7-16 21:06 编辑
许子毅 发表于 2013-7-16 20:50
以下是我验证的代码,你也可以验证看看,注释的和非注释的结果基本相同.


我用的运算模型跟你的差不多,不过我用的是一个for循环,
其实我的主要问题点是,移三位是不是比移1位次要快一点呢,我总觉得移的位数愈多,是不是内部运算愈复杂,你的分析也有道理,但是总感觉不是很清楚知道那个更快,
回复 使用道具 举报
许子毅 发表于 2013-7-16 23:49
这个问题应该跟编程关系不大了,你要去看看cpu运行机制
我是感觉,每次运算完,存储数据后都是按32位或者64 ...

恩,谢谢你啊
回复 使用道具 举报
2<<3会比8<<1运算快 因为一个是移了三位,一个只是移了一位。
回复 使用道具 举报

我也是这样想的,但是又觉得应该不会这样算,觉得cpu会不会有某种运算机制,直接修改相应的位,不管要移多少位,这种运算方式都一样,所以速度上也不会有什么区别
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马