byte[]数组1:0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF  
byte[]数组2: 0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67  数组1和数组2进行异或运算,如下:       
               0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF           异或:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67         结果为:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98请各位大大将代码贴出来,帮助下小弟。呵呵

解决方案 »

  1.   

    是对两个等长的byte数组,逐元素进行XOR运算,然后把结果保存进另一个数组吗?如果是,那就是一个循环啊byte[] result = new byte[array1.Length];
    for(int i =0; i<array1.Length; i++)
        result[i] = array1[i] ^ array2[i];
      

  2.   

    var data1 = new[]{ 0x06, 0x12, 0x34, 0x56, 0xFF, 0xFF, 0xFF, 0xFF };
    var data2 = new[]{ 0x00, 0x00, 0x67, 0x89, 0x01, 0x23, 0x45, 0x67 };
    var data3 = new byte[data1.Length];
    for(int i=0; i<data1.Length; i++)
        data3[i] = data1[i] ^ data2[i];
      

  3.   

    注意异或操作将byte隐式转换为int,需要再显示转换为byte            byte[] arr1 = { 0x06, 0x12, 0x34, 0x56, 0xFF, 0xFF, 0xFF, 0xFF };
                byte[] arr2 = { 0x00, 0x00, 0x67, 0x89, 0x01, 0x23, 0x45, 0x67 };
                byte[] arrXor = new byte[arr1.Length];            for (int i = 0; i < arr1.Length; i++)
                {
                    arrXor[i] = (byte)(arr1[i] ^ arr2[i]);
                    Console.WriteLine("0x{0:x}", arrXor[i]);
                }
      

  4.   

    byte[] bs1 = {0x06, 0x12, 0x34, 0x56, 0xFF, 0xFF, 0xFF, 0xFF };
                byte[] bs2 = {0x00, 0x00, 0x67, 0x89, 0x01, 0x23, 0x45, 0x67};
                byte[] bs3 = new byte[bs1.Length];
                for (int i = 0; i < bs1.Length; i++)
                {
                    bs3[i] = (byte)(bs1[i] ^ bs2[i]);
                }
      

  5.   

    var 结果=数组1.Zip(数组2,(b1,b2)=>b1^b2).ToArray();