一、位运算符
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.
}
}