社区
C语言
帖子详情
用最有效率的方法算出2乘以8等於几? 为什么是2 < < 3 ?
windylcx
2009-06-24 01:13:11
加精
如题~~是在一个贴子上看到的~~难道跟机器指令有关~ 在java中
...全文
5398
163
打赏
收藏
用最有效率的方法算出2乘以8等於几? 为什么是2 < < 3 ?
如题~~是在一个贴子上看到的~~难道跟机器指令有关~ 在java中
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
163 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gz_eddie_htc
2011-12-10
打赏
举报
回复
位运算``毋庸置疑``
hywink
2011-12-09
打赏
举报
回复
这个乘以3就没用了。
S0603251
2010-11-23
打赏
举报
回复
[Quote=引用 17 楼 lingyin55 的回复:]
计算机内部只有1/0而在内存中任何一个数据都是用单位存储的,
位运算就是对内存中的单位进行的计算比普通的+-*/快得多,
而且位运算是直接对内存操作而其他的+-*/要想把数据调到缓冲区再操作。
[/Quote]
总算知其所以然了,up!
sd5368821
2010-10-24
打赏
举报
回复
fdsfdsfsdfsdf
xkxxzw
2010-09-09
打赏
举报
回复
位运算是最快的
乐CC
2010-09-08
打赏
举报
回复
[Quote=引用 27 楼 supermegaboy 的回复:]
真实的答案其实跟大家所认为的大不一样哦!!实际测试一下就知道了:
C/C++ code
#include <stdio.h>
#include <time.h>
int main(void)
{
clock_t start, end;
long i, j;
start = clock();
for( i = 0; i <= 100……
[/Quote]
编译器会优化?
dknlnl
2010-07-25
打赏
举报
回复
从代码上看2<<3可不比2*8高明,至新本新手是绝不喜欢.
如果说执行效率....java要不要编译的?不记得了..这个要看真正的机器码,不一定你写2<<3他就一定给你来三个移位...要看人家怎么处理.
xushuai0794
2010-07-23
打赏
举报
回复
移位思想,移位是最快的,不过现在很多编译器都变成智能化了,会吧2 * 8改成2 >> 3这种形式
zj294006
2010-06-03
打赏
举报
回复
奇怪我做1000000000次2<<3时间为5.203,2*8时间为5.187,好像后者要快.....
勇敢的搬砖人
2010-05-27
打赏
举报
回复
http://topic.csdn.net/u/20100527/19/18534287-223b-457f-b79c-863b0288a167.html
nampot2468
2010-05-26
打赏
举报
回复
学习了。
田暗星
2010-04-12
打赏
举报
回复
感觉不是最好的方法
2*8 = 8*2
所以最快的应该是 8 << 1
junzhione
2010-03-30
打赏
举报
回复
移位。。。。
hilojack
2010-03-25
打赏
举报
回复
快不快全看指令占用的指令周期,这个问题我认为没什么可纠结的。
如果要纠结的话,你就得问为什么mul占用的周期会比较长(当然编译器把乘法优化为移位指令的情况除外),其实按照组合电路的设计方法,其实mul完全可以设计为一个周期,但是电路设计就相当的复杂,这样是得不偿失的。除法的情况同情是这样!
liqiong1
2010-01-18
打赏
举报
回复
编译出来的机器指令最快,仅此而已。
hfjighbg
2009-12-21
打赏
举报
回复
越是简单的问题,参与的人就越多呀。
wotur
2009-10-31
打赏
举报
回复
如果移位和乘法的指令周期是一样的,那就没有什么差别的,
不过据我所知arm核的目前应该是移位的效率高,
很多低版本的arm指令集甚至根本不支持乘法指令!
xiaoliang_c
2009-10-27
打赏
举报
回复
是位运算
CNCQ163
2009-10-23
打赏
举报
回复
嗯,顶一下。
gx168853
2009-10-21
打赏
举报
回复
一个小问题就可以引申出好多想法,好好好,来这里真是太棒了
加载更多回复(143)
用最
有效率
的
方法
算出
2
乘以
8等于几?
用最
有效率
的
方法
算出
2
乘以
8等于几? 2<< 3,(左移三位)因为将一个数左移n位,就相当于
乘以
了2的n次方,那么,一个数
乘以
8 只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2
乘以
8等
於
几的最效率的
方法
是2<< 3。 ...
java面试篇8、用最
有效率
的
方法
算出
2
乘以
8 等于几?
直接使用乘法运算符是计算2
乘以
8的最
有效率
的
方法
。这种
方法
简单、直观且高效。
用最
有效率
的
方法
算出
2
乘以
8等
於
几?
最快的
方法
就是位运算了,将2进行左移运算,2<<3,便可得到8。 因为将一个数左移n位,相当于
乘以
2的n次方。位运算是cpu直接支持的,所以速度是贼快的。 ...
JAVA 2
乘以
8
方法
_Java中用最
有效率
的
方法
算出
2
乘以
8
Java中用最
有效率
的
方法
算出
2
乘以
8 等
於
几?2 << 3,因为将一个数左移n 位,就相当于
乘以
了2 的n 次方,那么,一个数
乘以
8 只要将其左移3 位(因为将一个数右移n 位,就相当于除以了2 的n 次方,那么,一个数
乘以
8 只要将其右移3 位)即可,而位运算cpu 直接支持的,效率最高,所以,2
乘以
8 等
於
几的最效率的
方法
是2 << 3。//计算2*8=2*23S...
用最
有效率
的
方法
算出
2
乘以
8等于几?(C#移位运算)
出处:http://www.cnblogs.com/flydoos/archive/2011/09/06/2169280.html C#移位运算(左移和右移) 这是网上流传的“变态级JAVA程序员面试32问”的其中一题(二十八题),然后下面给出来的答案是 第二十八,编程题: 用最
有效率
的
方法
算出
2
乘以
8等
於
几? 有C背景的程序员特别喜欢问这种问题。
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章