java中的运算

来源:互联网 发布:开网店买什么软件好 编辑:程序博客网 时间:2024/04/28 00:50

算术运算符:
+ 加 - 减 * 乘 / 除 % 取余 ++ 自增 – 自减

关系运算符:
== != > < >= <=

位运算符 (二进制表示):
& 按位与 | 按位或 ^ 按位异或
~ 按位补运算符 翻转操作数的每一位 (一元操作符)
<< 按位左移运算符

 >>  按位右移运算符    (带符号右移)          正数:高位补0          负数:高位补1 >>>  按位右移运算,得到的空位补零    (无符号右移)

ps : 在进行移位运算时要注意整型和长整型在内存中的位数(整型是32位,长整型是64位),如果移位操作数超出了该位数则取模计算,例如:int型数据是32位的,如果左移35位是什么结果?该结果与5<<3完全相同。无论正数、负数,它们的右移、左移、无符号右移 32位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。
一个有趣的现象是,把 1 左移 31 位再右移 31位,其结果为 -1。

逻辑运算符:
&& 逻辑与 || 逻辑或 !逻辑非

赋值运算符:
= 简单赋值
+= a += b 即 a = a + b
-= a -= b 即 a = a - b
= a = b 即 a = a * b
/= a /= b 即 a = a / b
(%)= a (%) = b 即 a = a % b
<<= a <<= b 即 a = a << b

 >>=        a  >>= b   即  a = a >> b &=           a  &= b   即  a = a & b | =            a  |= b   即  a = a | b ^=            a  ^= b   即  a = a ^ b

条件运算符 (三元运算符) :

variable x = (expression) ? value if true : value if false

instanceOf 运算符:
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

运算符优先级:
后缀 () [] . (点操作符) 左到右
一元 + + - !〜 从右到左
乘性 * /% 左到右
加性 + - 左到右
移位 >> >>> << 左到右
关系 >> = << = 左到右
相等 == != 左到右
按位与 & 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 , 左到右

java中的数学计算函数
Math类:
java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。
java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。

java.lang.Math类 中 包含 E 和 PI 两个静态常量,以及进行科学计算的类(static)方法,可以直接通过类名调用。
public static final Double E = 2.7182818284590452354
public static final Double PI = 3.14159265358979323846

abs():绝对值
sin(double x): x径度的正弦函数值
cos(double x):x径度的余弦函数值
tan(double x): x径度的正切函数值
asin(double x):x值的反正弦函数值。
acos(double x):x值的反余弦函数值。
atan(double x):x值的反正切函数值。
atan^2(double x, double y):极坐标(polar)的θ值
floor(double x):不大于x的最大整数值
ceil(double x):不小于x的最小整数值。
exp(double x):相当于ex值
log(double x):x的自然对数函数值
max(double x,double y):x、y较大数
min(double x,double y):x、y较小数
pow(double x,double y):x的y次幂值
sqrt(double x): x开平方值
rint(double x):最接近x的整数值
round(double x):x的四舍五入值
toDegrees(double angrad):将angrad径度转换成角度
toRadians(double angdeg): 将angdeg角度转换成径度
random() :产生一个0-1之间的随机数(不包括0和1)
NumberFormat类:
  (public abstract class NumberFormat extends Format)
用java.text.NumberFormat类对输出的数字结果进行必要的格式化。 使用该类如下方法类实例化一个NumberFormat对象:
public static final NumberFormat getInstance();
然后用该对象调用如下方法可以格式化数字number(返回字符串对象):
public final String format(double number);
NumberFormat类有如下常用方法:
setMaximumFractionDigits(int newValue)//设置数的小数部分所允许的最大位数。
setMaximumIntegerDigits(int newValue)//设置数的整数部分所允许的最大位数。
setMinimumFractionDigits(int newValue)//设置数的小数部分所允许的最小位数。
setMinimumIntegerDigits(int newValue)//设置数的整数部分所允许的最小位数。
BigInteger类、BigDecimal类:
java.math包中的BigInteger类和BigDecimal类分别提供任意精度的整数和小数运算。
两个类设计思想一样,这里只对BigInterger类稍做介绍,细节可以查看JDK6API参考。

构造方法如下:
BigInteger(String val) //将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
还有很多考虑周全的构造函数,建议要准备写特殊需求的BigInteger前先认真翻下JDK。

常用方法:
abs() //返回其值是此BigInteger的绝对值的BigInteger。
add(BigInteger val) //返回其值为(this+val)的BigInteger。
subtract(BigInteger val) //返回其值为(this-val)的BigInteger。
multiply(BigInteger val) // 返回其值为(this*val)的BigInteger。
divide(BigInteger val) //返回其值为(this/val)的BigInteger。
remainder(BigInteger val) //返回其值为(this%val)的BigInteger。
compareTo(BigInteger val) //将此BigInteger与指定的BigInteger进行比较。返回值1、0、-1分别表示大于、等于、小于
pow(int exponent) //返回当前大数的exponent次幂。
toString() //返回此BigInteger的十进制字符串表示形式。
toString(int radix) //返回此BigInteger的给定基数(radix进制)的字符串表示形式。
补充:
(1)abs():返回某数字的绝对值.参数可以是float、double、long或int。如果是byte或short类型,那么它们会被强制转换成int类型。
(2)ceil()会找到下一个最大整数。例如参数为9.01时,返回10.0。为-0.1时,返回-0.0。返回比参数大的整数,而且都是双精度类型的。如果参数是整数,则该方法会返回这个参数的双精度型。
(3)floor()返回紧邻的最小整数。作用与ceil()正好相反,返回的是比参数小的整数,而且都是双精度型。如果参数为整数,则返回这个参数的双精度型。
(4)max()返回两个值中的最大值,只支持float double long int 不支持byte short。
(5)min()返回两个值中的最小值,只支持float double long int 不支持byte short。
(6)random()返回一个随机数,一个在0.0到1.0之间的双精度数。
(7)round()返回与某浮点数值最接近的整数值。参数可以为double和folat两种,而且支持四舍五入。例如:参数为9.01时,返回9,参数为9.5时,返回10,参数为-9.5时,返回-9。
(8)sqrt()返回某数值的平方根。如果该参数是”非数字”类型(NaN),或者小于零,则返回是NaN。

0 0