【发布时间】:2021-11-29 15:04:32
【问题描述】:
我有一个字节数组,由一个字符串组成:
array := []byte("some string")
看起来像预期的那样:
[115 111 109 101 32 115 116 114 105 110 103]
从 python 开始,我认为有更好的方法,而不是类似的方法:
func sum(array []int) int {
result := 0
for _, v := range array {
result += v
}
return result
}
(以上失败,因为数字不是整数,所以这需要另一个数据转换)
有没有办法简单地获取字节数组的校验和?
喜欢:
sum(array)
【问题讨论】:
-
如果您想简单地将单个字节求和为整数,请执行以下操作:play.golang.org/p/kG_BomiGQ9v。还有
hash/adler32、hash/crc32和hash/crc64。 -
@mkopriva 谢谢!
-
这里更大的目标是什么?示例字符串是简单的 ASCII 格式。 Go 字符串可以包含任何 UTF8 字符,因此单个符文可以跨越多个字节。
-
@colm.anseo 我将其用作 FIX 消息的校验和:en.wikipedia.org/wiki/…
-
@gg 编辑问题以说明您要计算 FIX 消息总和。这将省去人们编写无法解决您的问题的答案的麻烦。