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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

算2乘以8最有效率的方法是什么?为什么?

点评

没有认真看视频。  发表于 2014-5-29 22:59

21 个回复

倒序浏览
位移运算 是最快的。
2<<3 或 2<<<3
<<与<<<的区别是,<<是带符号的左移   <<<是不带符号的左移
因为操作的是二进制,计算机数据的底层实现形式。

点评

这,有无符号左移这一说?  发表于 2014-5-30 01:01

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 这个问题就给最快回答的吧!~

查看全部评分

回复 使用道具 举报 1 0
最快的方法就是2<<3.也就是把二进制位左移三位,就相当于把乘以2的三次方,
做个简单的比较,十进制的数左移三位就是乘以10的三次方.这样你就可以很好的记住了.
回复 使用道具 举报
位运算还不太懂
回复 使用道具 举报
这个问题是毕老师讲过的原话,看视频要认真了啊
回复 使用道具 举报
看图吧,图上有说明

28.png (11.22 KB, 下载次数: 34)

28.png
回复 使用道具 举报
用移位运算 2<<3;  2乘以8 最后结果是16, 这是最省内存 最有效率的方法 。因为计算机内部本来处理的就是二进制数。
回复 使用道具 举报
楼主正解!!!!!!!
回复 使用道具 举报
计算机 操作的都是二进制数,移位是最快的运算方式 ,无需转换
回复 使用道具 举报
楼上的说的很详细了,位运算
回复 使用道具 举报
移位运算最简便。。。
回复 使用道具 举报
其实这道题不够严谨,
准确来说,应该是在计算机领域中,计算:2*8     最有效率算法是什么运算。

然后楼上各位兄弟都说的对,

当开始我也存在在很纳闷的思绪。

其实正常,我们已经根深蒂固的知道2*8 最简单就是  相乘=16。
反而 2进制的000 010 左移三位变成010 000  那么右边起 2,4,6,16   噢   答案是16  更复杂。
对人来说最简单的算法就是直接  相乘

对计算机而言,计算机是2进制的,换成人的思路计算就得转换为10进制,

然后计算,  也就非常复杂了。
而直接进行位移,对计算机就很简单了,   

等同于 各自 用 最根深蒂固 的 方案  坚决问题。
回复 使用道具 举报
看视频,上面说的很详细的
回复 使用道具 举报
左移3位啊
回复 使用道具 举报
位運算,直接操作內存地址
回复 使用道具 举报
毕老师讲的很详细啊!
回复 使用道具 举报
2<<3这个毕老师的视频里有
回复 使用道具 举报
这个在毕老师的视频里说过吧
回复 使用道具 举报
支持2楼
回复 使用道具 举报
LFW 中级黑马 2014-5-30 10:23:47
20#
毕老师的视频里都讲了,这帖会不会变水贴。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马