10.基础运算符
一.按功能分类
二.按操作个数分类
三.算术运算符
//(前)++||-- 先改变值后进行操作
(后)++||-- 先进行操作后改变值
//值为布尔类型数据
四.赋值运算符
五.比较运算符
// != 表示不等于
且比较运算的结果是布尔类型的数据
六.instanceof的使用
格式:数据名 instanceof 类名
// 检查数据是否为类的对象
七.逻辑运算符(针对布尔类型变量进行操作)
①.&(逻辑与)
格式:数据1 & 数据2
//相当于 and 符号两边都要真才为真
//会走完所有的判断操作,即符号左边为false也会执行符号右边操作
②.| (逻辑或)
格式:数据1 | 数据2
//相当于 or 符号两边一个为真就是真
③.!(逻辑非)
格式:!数据
//相当于not 真变假,假变真
④.^(异或,即不同与或,结果与或相反)
格式:数据1 ^ 数据2
//符号两边布尔值不同输出真,反之输出假
⑤.&&(短路与)
格式:数据1 && 数据2
//不会走完所以操作,即当符号左边为false时,不会执行符号右边的操作
⑥.||(短路或)
格式:数据1 || 数据2
//如果符号左边为false,会执行符号右边的操作
如果符号左边为true,不会执行符号右边操作
八.位运算符(针对整型和浮点型)
①.<< (左移)
格式: 数据名 << 位数
例如 int a=7;
a << 2; //输出28
//这样会在二进制下对数据进行修改,且缺位补0
左移原理(对于正、负数都适用):
每向左移一位 就在原来的数值上×2
②.>>(右移)
格式:数据名 >> 位数
例如:int a=8;
a << 2; //输出2
//这样会在二进制下对数据进行修改,且缺位补0右移原理(正、负数都适用):
每右移一位,就在原来的数值上÷2
③.>>>(无符号右移)
格式:数据名 >>> 位数
④.&(按位与)
⑤.|(按位或)
⑥.^(按位异或)
⑦.~(按位取反)
按位操作的底层逻辑:
将二进制中的0 1看出false true 做相关逻辑运算
例如:
为正数时
例如:
为负数时