在Go中切片

时间:2017-09-23 00:48:36

标签: algorithm go

所以我试图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,因为我将数组切割成多个字节,所以必须切片。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

应用程序应该xor个别字节。像这样:

&&

这设置

var random [4]byte
for i, b := range something {
    random[i&3] ^= b  // xor b on element of random
}