
正文
java实现异或的代码 java利用异或运算的性质,对几个字符
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java怎样用异或进行
异或运算(^)都以二进制数据为基础进行java实现异或的代码的运算。也就是说当代码中使用到异或运算时java实现异或的代码,都会先将两个条件进行转换java实现异或的代码,转换成二进制数据后java实现异或的代码,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。
例如
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
相关问答
Q1: 用java代码实现逐字节异或
异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。例如pre t="code" l="java"int a=4;
int b=6;
int c = a^b;//c的值是a和b的异或。值为2.过程 1、a的值二进制是pre t="code" l="js"0000 0100 //这里去低8位,因为高位都一致。 2、b的值二进制是pre t="code" l="js"0000 0110 3、异或后pre t="code" l="js"0000 0010 //结果是2
Q2: java异或运算符求详细过程
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
Q3: 用java写一个 字符串异或 的程序
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);
}
java实现异或的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java利用异或运算的性质,对几个字符、java实现异或的代码的信息别忘了在本站进行查找喔。






