黑马程序员技术交流社区

标题: 大家帮我看一下对不对 (最有效率的方法计算出2乘以8等... [打印本页]

作者: 张龙跃    时间: 2013-4-16 20:45
标题: 大家帮我看一下对不对 (最有效率的方法计算出2乘以8等...
本帖最后由 张龙跃 于 2013-4-17 00:31 编辑

代码如下

class jishu
{
        public static void main(String [] args)
        {
                System.out.print("2乘以8等于"+2*8);
        }
}



我这是最有效率的方法吗

作者: Asan    时间: 2013-4-16 20:48
答案是对的!不过这是非规范的写法!
作者: wanggang    时间: 2013-4-16 20:52
System.out.print("2乘以8等于"+(2<<3));

作者: JavaUtil    时间: 2013-4-16 21:19
本帖最后由 JavaUtil 于 2013-4-16 21:22 编辑

楼上的答案是对的,用<<是直接用二进制操作,比*效率高。
作者: lipingan0520    时间: 2013-4-16 21:23
  1. class jishu
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 System.out.print("2乘以8等于:"+(8<<1));
  6.         }
  7. }
复制代码
位运算相比较效率。
作者: 403383221    时间: 2013-4-16 21:23
最快的运算是位运算,把2左移3位,就是2*2的三次方,2<<3,楼上正解
作者: 刘海东    时间: 2013-4-16 21:24
用位运算效率最高:
2<<3;
作者: smile_joe    时间: 2013-4-16 21:40
class jishu
{
         public static void main(String [] args)
         {
                 System.out.print("2乘以8等于"+2<<3);//向右位移3位,就是乘以2的3次方/--8
         }
}

计算机底层全是二进制,位运算就是对二进制位的操作,所以首选位移,技术含量高点,运算速度肯定是要快点的....
作者: 朱德帅    时间: 2013-4-16 23:02
这是最快的。
System.out.println(16);
作者: 闫玉龙    时间: 2013-4-16 23:20
用位运算最快,2<<3 ------>2*8
class Demo
{
        //主函数
        public static void main(String[] args)
        {
                //输出语句
                System.out.println("2*8="+2<<3);
        }
}

作者: 田富丰    时间: 2013-4-17 02:08
虽然用左移是运算最快的!但它只局限于2的次觅。
作者: 陈山洪    时间: 2013-4-17 07:33
位运算最快
作者: yinbolove576    时间: 2013-4-17 08:26
smile_joe 发表于 2013-4-16 21:40
class jishu
{
         public static void main(String [] args)

兄台,你的注释可不要误导新手哟,2乘以8的最高效运算方法的确是位移,但貌似你说的位移方向搞反了,应该是向左位移三位,记住一点:左移n就是乘以2的n次幂,右移n,则是除以2的n次幂
作者: smile_joe    时间: 2013-4-17 10:17
yinbolove576 发表于 2013-4-17 08:26
兄台,你的注释可不要误导新手哟,2乘以8的最高效运算方法的确是位移,但貌似你说的位移方向搞反了,应该 ...

不好意思,写对说错,谢谢你....
作者: yinbolove576    时间: 2013-4-17 10:53
smile_joe 发表于 2013-4-17 10:17
不好意思,写对说错,谢谢你....

客气了,相互学习嘛,呵呵~




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