我正在阅读一些文档(根据NDA),其中说要执行以下操作:
Rnd1[11..7] <+> Rnd2[11..7]
Rnd1
和Rnd2
表示一个字节数组。
运营商应该&lt; +&gt;在这做什么?
我浏览了整个文档但无法找到解释。
答案 0 :(得分:5)
可能是尝试对符号⊕进行ASCII表示,该符号表示异或。
因此,文档可能会告诉您取Rnd1
的字节11到7,并在Rnd2
中使用相同的字节xor它们
public byte[] YourOperator(byte[] rnd1, byte[] rnd2)
{
byte[] result = new byte[5];
for(int i = 7; i <= 11; i++)
{
result[i - 7] = rnd1[i] ^ rnd2[i];
}
return result;
}
请注意检查7..11
是否为包含或排他上限,这会将您使用的字节数从5更改为4,<=
更改为{{ 1}}。
您签署保密协议以获取文件意味着您应该与提供给您的公司建立工作关系,最好的选择是与他们联系并要求澄清,以便您确切知道他们的意思。
答案 1 :(得分:1)
我喜欢Linq的做事方式,例如
rnd1.Zip(rnd2, (r1, r2) => r1 ^ r2).Skip(7).Take(4);