首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java如何对两个byte[]型字段进行进行模二加或者说异或运算

2012-02-01 
java怎么对两个byte[]型字段进行进行模二加或者说异或运算public byte[] ByteXOR(byte[] parameter1,byte[

java怎么对两个byte[]型字段进行进行模二加或者说异或运算
public byte[] ByteXOR(byte[] parameter1,byte[] parameter2){
byte[]ByteXOR=null;
byte temp3
if(parameter1.length!=parameter2.length){

System.out.println("不能进行模二加!");
return null;
}

for(int i=0;i<parameter1.length;i++){
byte temp1=parameter1[i];
byte temp2=parameter2[i];

byte temp3=temp1^temp2;
  ByteXOR[3]=temp3
 
}
return ByteXOR;

}
这段中前面加byte temp3=temp1^temp2;出错,说不能从Int型转化为byte,我改成temp1^temp2报无效运算符的错误,其中传得两个字节型数据参数,是16字节的密码摘要。我打印出来摘要的每个字节存的值,大概是-155,73,24等这类的数。那么对存这样数的两个字节数据怎么进行模二加,也就是异或运算呢

[解决办法]

Java code
    public byte[] ByteXOR(byte[] parameter1, byte[] parameter2)    {        if(parameter1.length != parameter2.length)        {            System.out.println("不能进行模二加!");            return null;        }        byte[] ByteXOR = new byte[parameter1.length];        byte temp3;                for(int i = 0; i < parameter1.length; i++)        {            byte temp1 = parameter1[i];            byte temp2 = parameter2[i];            temp3 = (byte)(temp1 ^ temp2);            ByteXOR[i] = temp3;        }                return ByteXOR;    } 

热点排行