gpt4 book ai didi

algorithm - 在 Go 中异或一个 slice

转载 作者:IT王子 更新时间:2023-10-29 01:38:32 29 4
gpt4 key购买 nike

所以我尝试对每四个字节的某物进行随机异或,即 4 个字节。问题是,我想将 random 更改为 ans(这是异或的结果),然后继续。所以基本上随机变量第一次是一个固定数,但之后会改变直到循环结束。我的代码似乎有正确的逻辑,但是,我不断得到(运算符 ^ 未在 slice 上定义)

random := 4 bytes
for j:=0;j<len(something);j+=4{
ans:=something[j:j+4] ^ random
random=ans
}

我的猜测是,slice 不允许异或,并且某些东西必须是 slice,因为我要将数组 slice 成多个字节。知道如何解决这个问题吗?

最佳答案

应用程序应对各个字节进行异或运算。像这样:

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

这组

random[0] = random[0] ^ something[0] ^ something[4] ....
random[1] = random[1] ^ something[1] ^ something[5] ...
... and so on

关于algorithm - 在 Go 中异或一个 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46374933/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com