黑马程序员技术交流社区

标题: 算2乘以8最有效率的方法是什么?为什么? [打印本页]

作者: 947415283    时间: 2014-5-29 21:36
标题: 算2乘以8最有效率的方法是什么?为什么?
算2乘以8最有效率的方法是什么?为什么?
作者: 种一棵树    时间: 2014-5-29 21:44
位移运算 是最快的。
2<<3 或 2<<<3
<<与<<<的区别是,<<是带符号的左移   <<<是不带符号的左移
因为操作的是二进制,计算机数据的底层实现形式。
作者: yang1352546    时间: 2014-5-29 21:48
最快的方法就是2<<3.也就是把二进制位左移三位,就相当于把乘以2的三次方,
做个简单的比较,十进制的数左移三位就是乘以10的三次方.这样你就可以很好的记住了.
作者: 947415283    时间: 2014-5-29 21:49
位运算还不太懂
作者: 铁血丹心    时间: 2014-5-29 21:54
这个问题是毕老师讲过的原话,看视频要认真了啊
作者: 小钟    时间: 2014-5-29 22:03
看图吧,图上有说明

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

28.png

作者: 王峰峰    时间: 2014-5-29 22:04
用移位运算 2<<3;  2乘以8 最后结果是16, 这是最省内存 最有效率的方法 。因为计算机内部本来处理的就是二进制数。
作者: woshihq    时间: 2014-5-29 22:19
楼主正解!!!!!!!
作者: 成小龙    时间: 2014-5-29 22:34
计算机 操作的都是二进制数,移位是最快的运算方式 ,无需转换
作者: felixzr    时间: 2014-5-29 22:45
楼上的说的很详细了,位运算
作者: wyqs92    时间: 2014-5-29 22:50
移位运算最简便。。。
作者: 彭飞    时间: 2014-5-29 22:54
其实这道题不够严谨,
准确来说,应该是在计算机领域中,计算:2*8     最有效率算法是什么运算。

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

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

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

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

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

等同于 各自 用 最根深蒂固 的 方案  坚决问题。
作者: 吴海平    时间: 2014-5-29 23:39
看视频,上面说的很详细的
作者: wangleixhlm    时间: 2014-5-29 23:41
左移3位啊
作者: pk49800    时间: 2014-5-29 23:41
位運算,直接操作內存地址
作者: 没壳的蜗牛    时间: 2014-5-29 23:53
毕老师讲的很详细啊!
作者: 汤姆纳斯    时间: 2014-5-29 23:56
2<<3这个毕老师的视频里有
作者: 梦里花-静    时间: 2014-5-30 01:40
这个在毕老师的视频里说过吧
作者: jiang_ming    时间: 2014-5-30 09:47
支持2楼
作者: LFW    时间: 2014-5-30 10:23
毕老师的视频里都讲了,这帖会不会变水贴。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2