Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字节[]操作的实现有问题_C#_Arrays_Algorithm_Boolean Logic - Fatal编程技术网

C# 字节[]操作的实现有问题

C# 字节[]操作的实现有问题,c#,arrays,algorithm,boolean-logic,C#,Arrays,Algorithm,Boolean Logic,我对字节[]使用异或运算 public static byte[] XOR(byte[] buffer1, byte[] buffer2) { for (int i = 0; i < buffer1.Length; i++) buffer1[i] ^= buffer2[i]; return buffer1; } 但下一个代码返回wring结果^ T1 = XOR(W1,(RotHi(W0, n1))); // ed242f26d7e9da27, but s

我对字节[]使用异或运算

public static byte[] XOR(byte[] buffer1, byte[] buffer2)
{
    for (int i = 0; i < buffer1.Length; i++)
        buffer1[i] ^= buffer2[i];
    return buffer1;
}
但下一个代码返回wring结果^

T1 = XOR(W1,(RotHi(W0, n1))); // ed242f26d7e9da27, but should be CDFB23D652B779DB

怎么了?

问题出在字节顺序上。注意BigeNead或LittleEndian。

这和C++有什么关系?显然,你没有在C++中编程,所以请不要添加无关的语言标签。至于你的问题,你是否试过在调试器中逐个地通过代码?你期望的价值观和你得到的价值观何时何地开始偏离?您确定预期值正确吗?你确定你的算法是正确的吗?你使用n1而不是m1,并且只执行第一个异或而不是第二个,所以答案会不同。在你抱怨他们给出了两个不同的答案之前,请把这两个计算等效起来。@Someprogrammerdude不,我没有。但结果T0和W0是正确的,因为它不是等价的,它是不同的变量和不同的运算。但只有第三种结果是错误的(参考是标准的)
W0 = b194bac80a08f53b.
W1 = e12bdc1ae28257ec.
W2 = e9dee72c8f0c0fa6.
m1 = 8; n1 = 53.

T0 = RotHi(W0, m1); // 3bb194bac80a08f5
W0 = XOR(W0,W1);
W0 = XOR(W0,W2); // b96181fe6786ad71
T1 = XOR(W1,(RotHi(W0, n1))); // ed242f26d7e9da27, but should be CDFB23D652B779DB