将6字节切片转换为小端

时间:2013-09-26 18:49:48

标签: go

我想将6字节切片转换为小端编码。

我正在使用字节切片解析数组,并使用二进制包的Read函数将它们转换为小Endian。但是,当我解析一个6字节的切片,例如{05,00,00,00,00,00}它返回零(十六进制表示法),数据接口为uint64。有没有办法使用上面的功能,而不是硬编码。请注意,如果我填充剩余的两个字节零,我得到结果,但不知何故,我的解析器错过了数组的以下两个字节。

感谢您的帮助/建议。

1 个答案:

答案 0 :(得分:1)

手动解码。这很简单:

b := []byte{5,0,0,0,0,0,0}
i := uint64(b[0]) |
     uint64(b[1]) << 8 |
     uint64(b[2]) << 16 |
     uint64(b[3]) << 24 |
     uint64(b[4]) << 32 |
     uint64(b[5]) << 40