用有效率的方法算出2乘以16等于几?
问题阐述
在Java程序中,可以通过多种方法计算出2乘以16的值,例如,使用2*16或使用2<<4。那么算出2乘以16有效率的方法是什么呢?
昌平北大青鸟java培训专家解答
由于在计算机中,位运算的效率是高的,所以要想找出有效率的运算方法,应该从位运算入手。Java语言的位运算中提供了左移、右移和无符号右移运算符,它们分别是
<<、>>、>>>。左移运算会把操作数变大,它相当于把左侧操作数乘以2的n次幂,这个n是由右操作数决定的。而右移运算恰恰相反,它实现的是除法。
使用位运算符计算2乘以16,实现代码如下:
intvalue=2<<4;
说明:
上面的代码段中2<<4就是将2左移4位运算,相当于2乘以2的4次方,执行后value的值是32,与2乘以16的值是完全相同的,但是由于位运算的速度要比乘法运算的速度快,所以2乘以16等于几有效率的计算方法应该写成2<<4.
昌平北大青鸟java培训专家点评:
这里主要考查的是读者对位运算的理解程度,以及对计算机组成原理的掌握程度。计算机只能识别由0和1的二进制数据,位运算直接对数据进行二进制运算,而乘法运算则需要在计算机中进行相应的转换,然后进行计算才能得到正确的结果,因此速度要比左移位运算慢,但是由于计算机硬件和软件结束的提高,使用计算机计算的速度非常快,因此少量数据的乘法运算和移位运算的区别基本体现不出来。