java6——运算符

来源:互联网 发布:mac 查看局域网所有ip 编辑:程序博客网 时间:2024/06/04 21:58

之前说过了算数运算符和关系运算符,今天这里说一说其他的常用运算符:
-赋值运算符
-逻辑运算符
-三目运算符
-位运算符(常规应用开发中使用较少)

赋值运算符

运算符 名称 作用 例子 = 赋值 将等式右边的值赋给左边的变量 a=5 += 加等于 等式左边+右边的结果赋给左边的变量 a+=3相当于a=a+3 -=、*=、/=、%= 规律同上 作用同上 例子模式同上

赋值运算符的作用就是给变量赋值,示例代码如下:

public class TestFuZhi {    public static void main(String[] args) {        int a=5;        System.out.println(a);//5        a+=1;        System.out.println(a);//6        a=5;        a-=1;        System.out.println(a);//4        a=5;        a*=2;        System.out.println(a);//10        a=5;        a/=2;        System.out.println(a);//2(由于是两个int进行除法运算,其结果也是int,所以会损失精度)        a=5;        a%=3;        System.out.println(a);//2    }}

逻辑运算符

运算符 名称 作用 例子 & 与 进行与运算 a & b(如果a和b都是true就返回true,否则返回false) | 或 进行或运算 a | b(如果a和b中有一个为true就返回true,否则为false) ! 非 取反 !a(如果a为true,!a则为false) ^ 异或 a^b(如果a和b只有一个为true时,结果为true,否则为false) && 短路与 进行与运算 a && b && c(如果a为false,则结果直接为false,不继续运算) || 短路或 或运算 a || b || c(如果a为true则结果直接为true,不会继续运算下去)

逻辑运算符用来连接两个boolean类型的值,其结果也是一个boolean。测试代码如下:

public class TestLuoJi {    public static void main(String[] args) {        boolean a=true;        boolean b=true;        boolean c=false;        boolean d=false;        System.out.println(a&c);//false        System.out.println(a&b);//true        System.out.println(d&c);//false        System.out.println(a|c);//true        System.out.println(a|b);//true        System.out.println(c|d);//false        System.out.println(!a);//false        System.out.println(!c);//true        System.out.println(a^c);//true        System.out.println(a^b);//false        System.out.println(c^d);//false    }}

三目运算符

运算符 名称 作用 例子 a?b:c 三目运算符 如果a为true则b,否则c 3>2?5:6结果为5

三目运算符是一种简洁的判断用法,对于结果只有两种选择,且只输出一次时,通常选择三目运算符。

public class TestSanMu {    public static void main(String[] args) {        System.out.println(3>2?5:6);//5        System.out.println(3>4?5:6);//6    }}

位运算符(应用并不是很多,不明白也无妨)

运算符 名称 作用 例子 & 与 与运算 4&5,结果是4 | 或 或运算 4|5,结果是5 ~ 非 取反 ~4,结果是-5 ^ 异或 异或运算 4^5,结果是1 << 左移 左移运算 6<<2,结果是24 >> 右移 右移运算 6>>2,结果是1 >>> 无符号右移 无符号右移运算 6>>>2,结果为1

位运算符的运算过程都和操作数的二进制有关,也就是说,首先要将操作数转换成二进制数,然后再按照规则进行运算。其规则如下:
&:相同位都是1则为1,否则为0。 例如 4&5,4的二进制为1000,5是1001。
1000
1001
————————
1000 ——>第一位都是1则为1,第二位全是0位,第三位也是0,第四位只有一个1,也为0。所以其结果为1000,转换为十进制就是4。

| :相同位都是0则为0,否则为1。 运算方式同上,大家可自己行计算。

~:同位取反,如果是1则为0,是0则为1。 例如: ~4
0000 1000
——————
1111 0111 ——>取反后得到一个这样的二进制数,那么这个数是多少呢?
在数值表示中,第一位是符号位,0代表是正数,1代表负数。通过这个规则可以看出这是一个负数,负数取值的规则为:先将这个数的值(直接转换成十进制)-1,也就得到了11110110,再取反为0000 1001,十进制为5,加负号为-5
这里的表述如果看不懂,可以取百度一下,负数的表示方式。

^:两个操作数的位中,相同则结果为0,不同则结果为1。

>>: 将操作数的二进制数向右移动N位,如果操作数是正数,则在左侧补N个0;如果操作数是负数则补N个1

<<:规则同右移,

>>>:这里移动的规则和右移相同,只是补位时不考虑正负,都补0

原创粉丝点击