九种运算符
- 算术运算符:+、-、、/、%、++、–
- 关系运算符:==、!=、>、<、>=、<=
- 逻辑运算符:&、!、|、&&、||
- 按位运算符:&、|、^、~、<<、>>、>>>(要求必须是整数,否则会出现编译错误)
- 赋值运算符: =、+=、-=、=、/=、%=、&=、|=、^=、<<=、>>=、>>>=
- 条件运算符:?:(三目运算符)
- instanceof运算符:instanceof
- new运算符:new
- 运算符:“.”
- 运算符有有优先级,不确定的添加小括号,会先执行
基本的赋值运算符:=
- 扩展赋值运算符:(无论损失多少精度都不会改变运算的数据类型,哪怕精度损失)
- +=、-=、*=、/=、%=
- 以下很少用:>>=、<<=、>>>=、&=、|=、^=、~=
条件运算符:
- 1.语法格式:布尔表达式 ?表达式1 : 表达式2;
- 2.运算原理
- 当布尔表达式结果是true的时候,将表达式1的执行结果作为整个表达式的执行结果
- 当布尔表达式结果是false的时候,将表达式1的执行结果作为整个表达式的执行结果
位运算
过程:移动之前先进行原码、反码、补码的运算之后将补码进行移动,然后将移动之后得到的数在转回原码
左移<<运算符
二进制左移n位,是原来的2^n倍。如128左移三位–》128*2^3=1024
注意:左移运算符不会改变操作数的符号,左移后,右补0。左移运算符会对溢出进行截断
右移>>运算符
- 二进制右移n位:是原来的2^-n倍
- 注意:右移运算符对正数、负数和零的处理方式不同
- 对于正数,符号位不变,右移时左补0;
- 对于负数,符号位不变,右移时左补1;
- 对于零,右移运算符操作后结果仍为零。
- 右移运算符会对溢出进行截断
无符号右移>>>
无符号右移运算符对溢出进行截断。
将一个二进制数的所有位向右移动指定的位数,而不考虑符号位。无符号右移运算符的运算规则如下:
1.将一个二进制数右移,相当于将数值除于2的n次方,并将最高位填充为0.
2.任意一个数字经过无符号右移之后,最终结果一定是非负数(0或正整数)当无符号右移之后,左侧补0(不管是正数还是负数,都是补零)
按位运算符:
- 按位与运算符:&
- 1&1->1
- 1&0->0
- 0&1->0
- 0&0->0
- 按位或运算符:|
- 1|1->1
- 1|0->1
- 0|1->1
- 0|0->0
- 按位异或:^(按位异或运算符具有自反性)
- 1^1->0
- 1^0->1
- 0^1->1
- 0^0->0
- 按位取反:~ 取反后得到的数是补码,要转成原码
- ~1->0
- ~0->1