目录
运算符是一些特殊的符号,主要用于数学函数、赋值语句和逻辑比较等,例如我们常见的“+”、“-”、“*”、“/”、“=”......都是运算符
运算符大体分为以下几种:
赋值运算符、算数运算符、自增和自减运算符、比较运算符、逻辑运算符、位运算符、三元运算符
在这篇博客中,仅介绍自增和自减运算符、逻辑运算符、位运算符三种(主要是这几种自己之前老是弄不清楚,所以来捋一下)
1.自增和自减运算符
自增或自减运算符的作用是使变量的值增1或减1,放在变量前面的自增(自减)运算符,会先将变量的值加1再参与表达式的运算;相对的,放在变量后面的自增(自减)运算符,变量会先参与表达式的运算,再将变量的值加1。
听起来可能有点绕,话不多说,直接上手演示:
public class AddAndDelete {
public static void main(String[] args) {
int a=1;
int b=1;
int x;
int y;
x=++a;//先自加再赋值,即a先变成2,再把值赋给x,因此x取值为2
y=b++;//先赋值再自加,即b先把值赋给y,再自加变成2,因此y取值为1
System.out.println("x的取值为"+x);
System.out.println("y的取值为"+y);
System.out.println("a的取值为"+a);
System.out.println("b的取值为"+b);
}
}
打印结果
x的取值为2
y的取值为1
a的取值为2
b的取值为2
查看以上实例的打印结果可以看到
a先加1,再将值赋给x;
而b先将值赋给y,再加1;
虽然最后的结果都是2,但是对于运算过程中被赋值的变量来说是不一样的。
2.逻辑运算符
逻辑运算符有三种:逻辑与(&&和&)、逻辑或(||)、逻辑非(!),在这里主要介绍逻辑与。
逻辑与有两种表达方式:
1.(表达式)&&(表达式)
2.(表达式)&(表达式)
&&和&的区别
“&&”会先去判断第一个表达式是否为true,当第一个表达式为false时,不会去判断第二个表达式,直接输出结果从而节省计算机判断的次数;
“&”则会去判断两个表达式。
3.位运算符
1)按位与(&)
当两个整型数据二进制中对应位都为1,结果位才为1,否则为0。以 “-3&5”举例子
int型变量5的二进制表示是(别忘了int占4个字节,一共有32位,所以是这样子表示)
00000000 00000000 00000000 00000101
int型变量-3的二进制表示是
11111111 11111111 11111111 11111111
则-3&5表示为
00000000 00000000 00000000 00000101
11111111 11111111 11111111 11111111
结果是5
00000000 00000000 00000000 00000101
2)按位或(|)
当两个整型数据二进制中对应位都为0,结果位才为0,否则为1。还是以“-3|5”举例子
-3|5表示为
00000000 00000000 00000000 00000101
11111111 11111111 11111111 11111111
结果是-3
11111111 11111111 11111111 11111111
3)按位取反(~)
将操作数二进制中的1修改为0,0修改为1。以“7”举例子
7的二进制表示为
00000000 00000000 00000000 00000111
按位取反后表示为
11111111 11111111 11111111 11111000
结果为-8
4)按位异或(^)
当两个整型数据二进制中对应位相同(同时为0或者同时为1)时,结果位为0,若不相同,则为1,以“7^10”为例
int型变量7的二进制表示是
00000000 00000000 00000000 00000111
int型变量10的二进制表示是
00000000 00000000 00000000 00001010
则7^10表示为
00000000 00000000 00000000 00000111
00000000 00000000 00000000 00001010
结果是13
00000000 00000000 00000000 00001101