运算符(二)

mac2025-02-06  14

一、位运算符

1.按位与运算符(&)

两个操作数中位都为1,结果才是1;否则结果为0。``

package work; public class Demo1 { public static void main(String[] args) { // TODO Auto-generated method stub int a=20;int b=13; System.out.println("a&b的运算结果是:"+(a&b))//20的二进制:0010 0100;13的二进制:0000 0101; //根据&运算符的运算法则,只有两个位都是1,结果才是1,因此结果是0000 0100;即4. ![在这里插入代码片](https://img-blog.csdnimg.cn/2019110109524795.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1NzI4MjU4,size_16,color_FFFFFF,t_70)

2.按位或运算符(|)

两个只要有一位是1,其结果就是1;否则就为0。

package work; public class Demo1 { public static void main(String[] args) { int a=20;int b=13; System.err.println("a|b的运算结果是:"+(a|b)); } } //两个位只要有一个为1,那么结果就是1,否则就为0.因此结果为0010 1101,即29

3.## 按位非运算符(~)

如果位为0,结果就是1,如果位是1,结果就是0。

package work; public class Demo1 { public static void main(String[] args) { int a=20;int b=13; System.out.println("~a的运算结果是:"+(~a)); } } //其结果就是-21.

4.按位与或(^)

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

package work; public class Demo1 { public static void main(String[] args) { int a=20;int b=13; System.out.println("a^b的运算结果是:"+(a^b)); } } //结果为0001 1001,即25.

5.左移(<<)、右移(>>)、无符号右移(>>>)运算符

(1)左移运算符。将运算符左边的对象,按右边指定的位数向左移动运算符,并且在低位补零。(向左移,就相当于乘以2的n次方)

package work; public class Demo1 { public static void main(String[] args) { int x=2; int y=3; System.out.println("a<<b的运算结果是:"+(x<<y)); //2的进制数是0000 0010,其左移3位是0001 0000;即16.其实就是2乘以2的3次方。 } }

(2)右移运算符。将运算符左边的运算对象按右边指定的位数向右移动运算符。如果是正数,则在高位补0;如果是负数,则在高位补1.

package work; public class Demo1 { public static void main(String[] args) { int m=16; int n=-16; int p=2; int q=2; //m的二进制是00001 0000,其向右移两位后变成0000 0100,即4;n的二进制是1110 1111,, //其向右移两位后变成1111 1011,即-4; System.out.println("m的位移结果是:"+(m>>p)); System.out.println("n的位移结果是:"+(n>>q)); } }

(3)无符号右移运算符。将运算符左边的对象按右边指定的位数向右移动运算符,并且在高位补0,。其实右移n位,就相当于除以2的n次方。

package work; public class Demo1 { public static void main(String[] args) { int m=16; int q=2; System.out.println("m>>>q的运算结果是:"+(m>>>q)); } }

二、字符串运算符

1.运算符“+”可以实现两个或多个字符串的连接,也可以实现字符串与其他类对象的连接。 2.运算符“+=”把两个字符串连接的结果放进第一个字符串里

package work; public class Demo1 { public static void main(String[] args) { String t="你是"; String s="我的"; String s1; String s2; String s3; System.out.println(s1=t+s); System.out.println(s2=3+2+s1); System.out.println(s3=s1+3+2); } } //其s1输出的结果是:你是我的; // s2的输出结果是:5你是我的; // s3输出的结果是:你是我的32; } }

三、条件(三目)运算符

条件运算符又称“三目”运算符,其结构为boolean表达式?表达式1:表达式2 条件运算符的规则如下: (1)先计算boolean表达式; (2)如果boolean表达式的值是true,则整个表达式表达式的值为表达式2的值。

package work; public class Demo1 { public static void main(String[] args) { int flag=a>b?1:-1; System.out.println(flag);//fiag的值就是1. } }

五、运算符优先级

最新回复(0)