标签:
一、位运算符
任何信息在计算机中都是二进制的形式保存的,“&”,“|”,“^”除了可以作为逻辑运算符也可以作为位运算符。
&:只有参与运算的两位都为1,&运算的结果才为1,否则就为0。
|:只有参与运算的两边都为0,|运算的结果才为0,否则为1.
^:参与运算的两边相同为0,不同为1.
~:反码;取反。
一个数异或同一个数两次,结果还是那个数. 用处一个简单的加密思想.(加密图片代码:)
import java.io.*; class Demo4 { public static void main(String[] args) throws Exception { File inFile=new File("d:\\1.gif"); File outFile=new File("d:\\加密.gif"); FileInputStream input=new FileInputStream(inFile); FileOutputStream output=new FileOutputStream(outFile); int content=0; while((content=input.read())!=-1) { output.write(content^12); } output.close(); input.close(); } } 加密
笔试题:将两个变量交换,不使用第三方变量。(用^)
class Demo5 { public static void main(String[] args) { int a=3; int b=5; a=a^b; b=a^b; a=a^b; System.out.println(a+","+b); } } 交换变量
二、移位操作符
1.左移(算数移位"<<"):空位补0,超出的位数,丢弃。
结论:左移就相当于乘以2的n次方幂。
2.右移(“>>”)被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1;
结论:右移相当于除以2的n次方幂,n是移位的个数。
3.无符号右移(“>>>”)右移操作数左边的位数(最高位)统一用0补。
三、运算符顺序
标签:
原文地址:http://www.cnblogs.com/wswbk/p/5042357.html