package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
aa := uint(0xFFFFFFFF)
fmt.Println(aa)
byteNewbuf := []byte{0xFF, 0xFF, 0xFF, 0xFF}
buf := bytes.NewBuffer(byteNewbuf)
tt, _ := binary.ReadUvarint(buf)
fmt.Println(tt)
}
需要将 4 字节数组转换为 uint32 但为什么结果不一样? 去版本:beta 1.1
最佳答案
您可以使用 encoding/binary
包中的 ByteOrder
对象之一来执行此操作。例如:
package main
import (
"encoding/binary"
"fmt"
)
func main() {
aa := uint(0x7FFFFFFF)
fmt.Println(aa)
slice := []byte{0xFF, 0xFF, 0xFF, 0x7F}
tt := binary.LittleEndian.Uint32(slice)
fmt.Println(tt)
}
如果您的数据是大端格式,您可以在 binary.BigEndian
上使用相同的方法。
关于go - 将数据从字节 slice 解码为 Uint32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848830/