go - 将数据从字节 slice 解码为 Uint32

标签 go

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/

相关文章:

reactjs - 部署具有dockerized前端和dockerise后端镜像的应用程序

ubuntu - goclipse 去 ubuntu 上的二进制位置

windows - 为什么无法使用任何端口连接到 127.0.0.1 上的 http 服务绑定(bind)

go - 如何捕获像 ctrl+c 这样的 os 信号并通过 gorilla websocket 在 go 中发送它们

go - 如何从解压缩文件中删除 gzip header 元数据

go - 如何在没有隐式缓冲区的情况下将值从一个 Go channel 传输到另一个 channel ?

rest - 使用 http.NewRequestWithContext() 创建的请求在传递给中间件时会丢失上下文

go - 让 goimports 不扫描 vendor 内的文件

go - 操作系统中的服务列表 - golang

amazon-web-services - AWS S3 上传的文件未显示