「javabyte异或」java异或算法

博主:adminadmin 2023-01-01 01:48:10 1145

本篇文章给大家谈谈javabyte异或,以及java异或算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用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中求16进制异或和

~

按位非(not)(一元运算)

按位与(and)

|

按位或(or)

^

按位异或(xor)

右移

右移,左边空出的位以0填充

逐个,直接计算好了。.

string.charat(int)

强制转成byte、int,就可以运算了。

数字就无所谓16进制、还是10进制了。转成string才会有差别。除非你是想运算16进制的字符转成的数字。

java中异或是怎样算的

概述

i = 14,异或算法转换二进制,同则取0异则取1;

解析

异或是一种基于二进制的位运算,用符号XOR或者^表示,其运算法则是对运算符两侧数的每一个进制位同值则取0,异值则取1.

简单理解就是不进位加法,如1+1=0,0+0=0,1+0=1.

For example:

3^5 = 6

转成二进制后就是 0011 ^ 0101 二号位和三号位都是异值取1 末尾两个1同值取零,所以3^5 = 0110 = 6

而 i = 50 ,j = 60;

所以:

i 的二进制 = 00110010

j 的二进制 = 00111100

同位相同取0,不同取1所以得出来的值为00001110

i = i ^ j;所以i = 00001110 = 14

拓展内容

异或运算符

性质

1、交换律 

2、结合律(即(a^b)^c == a^(b^c)) 

3、对于任何数x,都有x^x=0,x^0=x 

4、自反性 A XOR B XOR B = A xor 0 = A

异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A XOR B XOR B = A,即对给定的数A,用同样的运算因子(B)作两次异或运算后仍得到A本身。这是一个神奇的性质,利用这个性质,可以获得许多有趣的应用。 例如,所有的程序教科书都会向初学者指出,要交换两个变量的值,必须要引入一个中间变量。但如果使用异或,就可以节约一个变量的存储空间: 设有A,B两个变量,存储的值分别为a,b,则以下三行表达式将互换他们的值 表达式 (值) : 

A=A XOR B (a XOR b) 

B=B XOR A (b XOR a XOR b = a) 

A=A XOR B (a XOR b XOR a = b)

#code:

google面试题的变形:一个数组存放若干整数,一个数出现奇数次,其余数均出现偶数次,找出这个出现奇数次的数?

java的异或运算,求助!

提供思路

将每个字节左移拼成8个字节 第一个左移56 第二个48.。。。

0x30 0x31 0x39 0x39 0x39 0x39 0x39 0x39

0011 0000 0011 0001 0011 1001 0011 1001 0011 1001 0011 1001 0011 1001 0011 1001 。。。

然后将3个8字节异或 最后右移还原

JAVA字符串异或

存在按位异或,就是根据数据在内存中的二进制数的存放形式进行异或操作,

但是不存在字符串的异或

如果在内存中的数据:01010101和10101010异或,结果就是11111111,然后再将

11111111转换成相应的数据输出结果

注意:Java中没有字符串的异或、与、或、非操作,不是C语言那样(除非是你自己定义异或操作)

关于javabyte异或和java异或算法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。