日期:2014-05-20  浏览次数:20757 次

java异或运算
public class Code {


public static void main(String[] args) {
String s="人民出版社";
char a[]=s.toCharArray();
for(int i=0;i<a.length;i++)
{ a[i]=(char)(a[i]^'t');//这儿的^'t'是什么意思
   
}
String secret=new String(a);
System.out.println(secret);
for (int i=0;i<a.length;i++)

{ a[i]=(char)(a[i]^'t');
}
String code=new String(a);
System.out.println(code);
}
}
这是完整的代码,没有错误。两次的异或运算secret是看不懂的文字,code是人民出版社。两个字符进行异或运算返回的是ascII码中的值,ascii值本来就是字符,怎么还需要(char)强制转换?还有就是第一次异或运算后的值和再次和't'异或运算怎么还原了??? 


------解决方案--------------------
主要用于加密~
------解决方案--------------------
反异或