《黑马程序员java教程位运算符》由会员分享,可在线阅读,更多相关《黑马程序员java教程位运算符(9页珍藏版)》请在金锄头文库上搜索。
1、 位运算符 P.S. 位运算是直接对二进制位进行运算。 与运算例子: 6 & 3 = 2 110 &011 - 010 示例:1. class OperatorDemo2. 3. public static void main(String args)4. System.out.println( 6 & 3 );5. 6. 复制代码 运行结果: P.S. 用“与运算”可以很方便提取某一二进制数的其中几位数。 例如:取17476二进制数的后四位。 0100010001000100 &0000000000001111 - 0000000000000100 或运算例子: 6|3 = 7 110 |
2、011 - 111 示例:1. class OperatorDemo2. 3. public static void main(String args)4. System.out.println( 6 | 3 );5. 6. 复制代码 运行结果: 异或运算例子: 6 3 = 5 110 011 - 101 示例:1. class OperatorDemo2. 3. public static void main(String args)4. System.out.println( 6 3 );5. 6. 复制代码 运行结果: P.S. 一个数异或同一个数两次,结果还是这个数。 例子: 6 3
3、3 = 6 6 3 = 5 110 011 - 101 011 - 110 技巧: 利用异或运算可以实现对数据简单地进行加密,例如对一幅图片的所有数据异或3进行加密,那么这幅图片就无法查看了。解密只需要再对图片的数据执行异或3操作即可。 取反运算: 取反操作就是对二进制数值的每一位0变1,1变0。 示例:1. class OperatorDemo2. 3. public static void main(String args)4. System.out.println( 6 );5. 6. 复制代码 运算结果: 左移运算例子: 3 2 = 12 相当于 3 * 2(2) = 12 00000
4、000000000000000000000000011 00000000000000000000000000001100 3 3 = 24 相当于 3 * 2(3) = 24 00000000000000000000000000000011 00000000000000000000000000011000 示例:1. class OperatorDemo2. 3. public static void main(String args)4. System.out.println( 3 2 );5. System.out.println( 3 3 );6. 7. 复制代码 运行结果: 总结: 左
5、移几位其实就是该数据乘以2的几次方。 1 = 3 相当于 6/2(1)=3 00000000000000000000000000000110 00000000000000000000000000000011 6 2 = 1 相当于 6/2(2) = 1 00000000000000000000000000000110 00000000000000000000000000000001 示例:1. class OperatorDemo2. 3. public static void main(String args)4. System.out.println( 6 1 );5. System.out.println( 6 2 );6. 7. 复制代码 运行结果: 总结: 右移几位其实就是该数据除以2的几次幂。 附: 以上例子中括号表示次幂的意思。 P.S. :对于高位出现的空位,原来高位是什么,就用什么补这个空位。 :无符号右移,数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。