位移运算符
位移运算符是将左操作数向某个方向(向左或者向右)移动右操作数指定的二进制位数。
运算符 | 解释 | 实例 |
---|---|---|
>> | 有符号右移运算符 将左操作数向右移动右操作数指定的二进制位数,符号位为正,最高位补0,符号位为负,最高位补1 | 8>>1 结果为4 |
>>> | 无符号右移运算符,将左操作数向右移动右操作数指定的二进制数,采用0扩展机制,无论符号位的正负,最高位都补0 | 60>>>2 结果为15 |
<< | 将左操作数向左移动右操作数指定的二进制位数 | 10<<2 结果为40 |
右位移运算符
运算法则:将左操作数向右移动右操作数指定的二进制位数,低位舍弃,高位空位补零,如果符号位为负,高位空位补1。例如8>>1。
图释
代码引用
public class dome2{
public static void main(String[] args) {
System.out.println(8>>1);
}
}
左位移运算符
运算法则:将左操作数向左移动右操作数指定的二进制位数,高位舍弃,低位空位补零。例10<<2.
图释
代码引用
public class dome2{
public static void main(String[] args) {
System.out.println(10<<2);
}
}
位赋值运算符
位赋值运算符由赋值运算符和位逻辑运算符和位移运算符组成,表格如下,假设a=7。
运算符 | 解释 | 实例 |
---|---|---|
&= | 按位与赋值 | a&=3 结果为3 |
|= | 按位或运算 | a|=3 结果为7 |
^= | 按位异或运算 | a^=3 结果是4 |
>>= | 按位右移赋值运算 | a>>=1 结果是3 |
<<= | 按位左移赋值运算 | a<<=2 结果是28 |
代码引用
public class dome2{
public static void main(String[] args) {
int a=7;
System.out.println(a&=3);
System.out.println(a>>=1);
System.out.println(a|=15);
System.out.println(a^=12);
}
}
答案
3
1
15
3
instanceof 运算符
instanceof是Java的保留字,测试左边的对象是否是右边对象类的实例,返回布尔数据类型。
代码引用
public class dome2{
public static void main(String[] args) {
List v=new ArrayList();
bijiao(v);
}
public static void bijiao(Object o) {
if(o instanceof Vector) {
System.out.println("对象是vector的实例");
}else if(o instanceof ArrayList) {
System.out.println("对象是ArrayList的实例");
}else {
System.out.println("对象是"+o.getClass()+"的实例");
}
}
}
答案
对象是ArrayList的实例