新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。
十年的汉阴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整汉阴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“汉阴网站设计”,“汉阴网站推广”以来,每个客户项目都认真落实执行。
例如
int a=4;
int b=6;
int c = a^b;//c的值是a和b的异或。值为2.
过程
1、a的值二进制是
0000 0100 //这里去低8位,因为高位都一致。
2、b的值二进制是
0000 0110
3、异或后
0000 0010 //结果是2
Java代码:
public class test{
public static void main(String[] args) {
String source = "cghjhgfgsdyugh";
int ch = source.charAt(0);
for(int i=1; isource.length(); i++) {
ch ^= source.charAt(i);
}
System.out.printf("%d : %c\n", ch, ch);
}
}
运行测试:
28 :
int 32位,补码存储
int a = 51;
int b = -16;
System.out.println("51 =" + Integer.toBinaryString(a));
System.out.println("-16 =" + Integer.toBinaryString(b));
int c = a^b;
System.out.println("异或 =" + Integer.toBinaryString(c));
System.out.println("即 =" + c);
51 =110011
-16 =11111111111111111111111111110000
异或 =11111111111111111111111111000011
原码为1000。。。111101
即 =-61
private String twoStringXor(String str1, String str2) {
byte b1[] = str1.getBytes();
byte b2[] = str2.getBytes();
byte longbytes[],shortbytes[];
if(b1.length=b2.length){
longbytes = b1;
shortbytes = b2;
}else{
longbytes = b2;
shortbytes = b1;
}
byte xorstr[] = new byte[longbytes.length];
int i = 0;
for (; i shortbytes.length; i++) {
xorstr[i] = (byte)(shortbytes[i]^longbytes[i]);
}
for (;ilongbytes.length;i++){
xorstr[i] = longbytes[i];
}
return new String(xorstr);
}