黑马程序员技术交流社区

标题: 2的3次方怎么写??? [打印本页]

作者: mulua    时间: 2013-7-2 07:01
标题: 2的3次方怎么写???
2的3次方怎么写啊,我用pow      提示没有这个函数,,导过包了java.lang.math
作者: 杜光    时间: 2013-7-2 07:29
  1. class  Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println(1<<3);
  6.         }
  7. }
复制代码
利用位运算是比较有效率的!
作者: 王靖远    时间: 2013-7-2 08:05
Math.pow(2,3);
作者: 水。。。海    时间: 2013-7-2 09:10
2*2*2也行啊{:soso_e113:}
作者: 张昶    时间: 2013-7-2 09:35
支持顶楼的,二楼的也不错,也支持。
作者: longlangcx    时间: 2013-7-2 09:49
java.lang包是默认包含的,不用导入,所以Math类可以直接使用。即使要导入,Math是类,也应该是java.lang.Math而不是java.lang.math。

单纯需要使用2的三次方,可以用移位运算, 一个数左移几位就表示乘以2的几次方,1 << 3这个就等于1 * (2的三次方)相当于2的三次方。

5 << 3等于5 * (2的三次方)等于40,如果要求5的三次方,用Math.pow(5,3)。

特别要注意Math.pow运算返回的数据类型为double,如:
int i = 5;
//!  i = Math.pow(i, 3);    // error: 编译报错,找到double,需要int,可能损失精度。
i = (int)Math.pow(i, 3);   // ok: 需要把double强制转换为int后才能赋给int值。
作者: 陈昊    时间: 2013-7-2 10:42
java中没有2进制的数据类型,对二进制的操作,需要使用共三种操作符。
<<  左移位操作符
>>  右移位操作符
>>> 无符号右移操作符使用左移时,数会变大,很多时间,用来代替“乘方”的操作。
比如2的平方 = 2 * 2 = 4 = 2<<1
2的3次方 = 2 * 2 * 2 = 8 = 2<<2
另外,一定要注意>>  >>>的差别。
作者: lanbuohan    时间: 2013-7-2 16:11
Math.pow(2,3);  这个方法相对好
作者: 。子伤。    时间: 2013-7-2 22:53
二楼的方法确实好,用左移。正数的左移:<< x左移x位,等于 x*2^x;
作者: 木偶_freedom    时间: 2013-7-3 20:35
移位运算是最方便的  2<<2
作者: 王瀛    时间: 2013-7-3 22:39
2<<2

位运算符是效率最高的
作者: 郭东生    时间: 2013-7-4 01:11
  1. public class MathDemo {

  2.         public static void main(String[] args) {
  3.                
  4.                 System.out.println(Math.pow(2, 3));
  5.         }

  6. }
复制代码
首先这个包是默认,不用导入;
我调用的方法没有问题,应该是你定义的类名和这个工具类重复了,所以调用时候系统会这么提示。

当然位运算效率是比较高的,如:左移
作者: zhou5852    时间: 2013-7-12 22:34
额。。。。。2的立方根  是 Math.pow(2,1/3);。。。。。。。。。。。。。。。。。。。。。。。。。
作者: hong云梦    时间: 2013-7-12 22:51
Math.pow(2,3);   也可以用移位运算1<<3




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