3.5运算符

2019-03-07  本文已影响0人  十六只猴子王

数学函数与常量

import static java.Math.*;

平方根Math.sqrt(x)
幂运算 Math.pow(x,a)x的a次幂,其返回类型为double类型

数值类型之间的转换

image.png
image.png

<center class="half">

强制类型转换(cast)

(想转换的类型)变量名

double x = 9.997;
int nx = (int) x;

截断小数部分将浮点值转换为整型
如果舍入运算,可以使用Math.round(x)方法

double x =999.7;
int nx = (int)Math.round(x);

结果为10
Math.round 返回的类型为long,所以使用(int)强转

结合赋值和运算符

x+=4;等价于x=x+4

自增自减运算符

int m = 7;
int n = 7;
int a = 2 * ++m;// now a is 16,m is  8;
int b = 2 * n++;// now  b is 14, n is 8;

关系和boolean运算符

**要检测相等性,可以使用==。可以使用!= 检测不等

x<y?x:y//会返回xy中较小的一个

位运算符

直接对组成整型数值的各个位完成操作,通过掩码技术的得到整数中的各个位,位运算符用来对二进制位进行操作
&("and")|("or")^("xor")~("not")

  1. 按位与(&)

    对两个数进行操作,然后返回一个新的数,这个数的每个位都需要两个输入数的同一位都为1时才为1,如下图:

    (A & B) 结果为 12, 二进制为 0000 1100

0b46f21fbe096b63074721c907338744eaf8acc9.jpg
  1. 按位或(|)

    比较两个数,然后返回一个新的数,这个数的每一位设置1的条件是两个输入数的同一位都不为0(即任意一个为1,或都为1),如下图:

    (A | B) 结果为 61, 二进制为 0011 1101

1b0d4f0fd9f9d72abce06f84df2a2834359bbb60.jpg
  1. 按位异或(^)

    比较两个数,然后返回一个数,这个数的每个位设为1的条件是两个输入数的同一位不同,如果相同就设为0,如下图:

    (A ^ B) 结果为 49, 二进制为 0011 0001

3801213fb80e7bec7df67d78242eb9389b506b7e.jpg
  1. 按位取反(~)

    对一个操作数的每一位都取反,如下图:

    (~A ) 结果为 -61, 二进制为 1100 0011


    7e7f7909c93d70cf71c2d394f3dcd100baa12b2b.jpg
  1. 按位左移(<<)

    将操作数的所有位向左移动指定的位数。

    下图展示了11111111 << 1(11111111 左移一位)的结果。蓝色数字表示被移动位,灰色表示被丢弃位,空位用橙色的0填充。

    (A << 2)结果为 240, 二进制为 1111 0000

3bb22487e950352a2c2b5c915843fbf2b3118ba6.jpg
  1. 6

    按位右移(<<)

    将操作数的所有位向又移动指定的位数。

    下图展示了11111111 >> 1(11111111 右移一位)的结果。蓝色数字表示被移动位,灰色表示被丢弃位,空位用橙色的0填充。

    A >> 2 结果为 15, 二进制为 0000 1111


    c2bce2039245d688833ac93dafc27d1ed21b242b.jpg

括号与运算符级别

枚举类型

枚举类型包括有限个命名的值

enum Size={SMALL,MEDIUM,LARGE,EXTRA_LARGE);

可以声明变量:

Size s = Size.MEDIUM;
上一篇 下一篇

猜你喜欢

热点阅读