为了账号安全,请及时绑定邮箱和手机立即绑定

Go:Varint 返回的值与读取的值不同

Go:Varint 返回的值与读取的值不同

Go
哈士奇WWW 2021-09-13 16:56:14
为什么 binary.Varint 返回的结果与 binary.Read 不同?package mainimport "fmt"import "encoding/binary"import "bytes"func main() {    b := []byte{0x18, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40}    var i1 int64    buf := bytes.NewBuffer(b)    binary.Read(buf, binary.LittleEndian, &i1)    fmt.Printf("%s, %d\n", i1, i1)    i2, _ := binary.Varint(b)    fmt.Printf("%s, %d\n", i2, i2)}返回:%!s(int64=4614256656552045848), 4614256656552045848%!s(int64=12), 12这是操场的链接:https : //play.golang.org/p/vlrl_CHq0v
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

Varint是一种特定的编码,这意味着它从网络/文件中读取的字节值实际上不是整数值,而是一种编码。另一方面,读取,只需按照您传递给它的字节顺序读取字节。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信