所以我试图xor random,这是4个字节,每四个字节的东西。问题是,我想随机改为ans(这是xor的结果),然后继续。所以基本上随机变量将是第一次固定的数字,但之后会发生变化,直到循环结束。我的代码似乎有正确的逻辑,但是,我不断得到 (操作符^未在切片上定义)
random := 4 bytes
for j:=0;j<len(something);j+=4{
ans:=something[j:j+4] ^ random
random=ans
}
我的猜测是,切片不允许xor,因为我将数组切割成多个字节,所以必须切片。知道如何解决这个问题吗?
答案 0 :(得分:3)
应用程序应该xor个别字节。像这样:
&&
这设置
var random [4]byte
for i, b := range something {
random[i&3] ^= b // xor b on element of random
}