【发布时间】:2015-02-01 23:12:16
【问题描述】:
我看到了一些与我遇到的完全相同的问题的答案:如何在 GO 编程语言中将字节数组转换为 int?
我写了下面的函数来将字节数组转换为int
func convertByteToInt(in []byte) int32 {
return (int32(in[0]) << 24 | int32(in[1]) << 16 | int32(in[2]) << 8 | int32(in[3]))
}
在此之前,我确保字节数组具有正确的(基数 256)值。 in[0] = 54(ASCII 表示 6), in[1] = 54(ASCII 表示 6), in[2] = 49(ASCII 表示 1), in[3] = 49(ASCII 表示 1)。
所以我希望从字节数组中检索整数 6611 值,但我最终得到了 909521201。我无法理解在如此简单的转换中到底发生了什么。 有人可以闪光吗?
谢谢
【问题讨论】:
-
您有一个整数,格式为 [] 字节中的十进制数字字符串。将您的 []byte 转换为字符串并使用 strconv.Atoi 和朋友。 Bitfiddling 在这里完全是无稽之谈。 (不值得回答。)
标签: arrays go type-conversion int