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