Java位运算符是什么?动力节点小编来告诉大家。
以0开头的整数为八进制
05 就是十进制的5
011就是十进制的9
以0x开头的整数位十六进制
0xF 就是十进制的15
0x11就是十进制的17
int a = 05;
int b = 011;
int c = 0xF;
int d = 0x11;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
按位运算符
二进制的位 ,运算的过程当中一位一位开始运算 ,相当于为二进制定制的运算
按位并(AND) : & (都是1结果为1 ,都是0结果为0 ,和逻辑的&类似 如果全1 和 全0结果为全0)
按位或 (OR) : | (只要有一个是1结果就为1)
按位异或 (XOR) : ^ (两个不一样就为1 ,两个一样对比结果就为0)
按位取反:~ (每一位都取反)
用十六进制或者八进制去表示的话 ,能够比较容易的表示出结果
int a = 0xF8;
//1111 1000
int b = 0xF4;
//1111 0100
int c = 0xFF;
//1111 1111
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
System.out.println(~c);
位移运算符
' >>> ' : 符号位一起右移,左边补0,又称无符号右移
' < ' : 左移,右边补0。左移没有带符号位一说,因为符号位在最左侧
按位运算符不会改变原本的变量的值 2. 位移运算符不会改变原本的变量的值
按位运算符
掩码(MASK)
一个int有32位 ,即可以使用31位状态表示 ,因此我们可以使用掩码来表示一个人的多种状态 ,但是不建议这样是使用
int base = 1;
int is_student_mask = base;
int is_programmer_mask = base << 1;
int is_driver_mask = base << 2;
int is_painter_mask = base << 3;
int data = 5;
boolean isStudent = (data & is_student_mask) != 0;
System.out.println(isStudent);
boolean isProgrammer = (data & is_programmer_mask) != 0;
System.out.println(isProgrammer);
boolean isDriver = (data & is_driver_mask) != 0;
System.out.println(isDriver);
boolean isPainter = (data & is_painter_mask) != 0;
System.out.println(isPainter);
位移运算符
可用于高效除以2
左移相当于除二 ,右移相当于乘以二
以上就是关于“Java位运算符的详细介绍”,如果大家想了解更多相关知识,不妨来关注一下本站的Java教程,里面有更丰富的知识等着大家去学习,希望对大家的学习能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习