加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang相当于Python的struct.pack / struct.unpack

发布时间:2020-12-16 09:25:27 所属栏目:大数据 来源:网络整理
导读:在 Python中,使用struct模块,我可以做类似这样的事情来获取值作为字符串的压缩表示: import structprint struct.pack('L',64)"@x00x00x00x00x00x00x00"struct.unpack('L','@x00x00x00x00x00x00x00')(64,) 我想在Go做类似的事情,除非我对如何
在 Python中,使用struct模块,我可以做类似这样的事情来获取值作为字符串的压缩表示:

import struct
print struct.pack('L',64)
"@x00x00x00x00x00x00x00"
struct.unpack('L','@x00x00x00x00x00x00x00')
(64,)

我想在Go做类似的事情,除非我对如何做到这一点有点不清楚.我知道我可以这样做:

import (
    "encoding/binary"
    "fmt"
)

bs := make([]byte,8)
binary.PutUvarint(bs,uint64(64))
fmt.Printf("%s",bs)
"@"

但那是非常不同的,可能不是我想要的.

解决方法

是的,“编码/二进制”是你想要的,你只是不想要可变长度格式.

https://play.golang.org/p/e81LuPO_JR

bs := make([]byte,8)
binary.LittleEndian.PutUint64(bs,uint64(64))
fmt.Printf("%#vn",bs)

i := binary.LittleEndian.Uint64(bs)
fmt.Println(i)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读