相当于 Golang 中的 readUIntLE?

我需要在缓冲区中的位置 Y 读取 X(例如,3)个字节。

在 Node.js 中,我通过使用 Buffer 类和 readUIntLE 函数来做到这一点。

例如:readUIntLE(position, 3)

Golang 中的那个过程相当于什么?



阿晨1998
浏览 178回答 1
1回答

斯蒂芬大帝

例如,package mainimport "fmt"func readUIntLE(buf []byte, offset, byteLength int) uint64 {&nbsp; &nbsp; var n uint64&nbsp; &nbsp; buf = buf[offset : offset+byteLength]&nbsp; &nbsp; if len(buf) > 8 {&nbsp; &nbsp; &nbsp; &nbsp; buf = buf[:8]&nbsp; &nbsp; }&nbsp; &nbsp; for i, b := range buf {&nbsp; &nbsp; &nbsp; &nbsp; n += uint64(b) << uint(8*i)&nbsp; &nbsp; }&nbsp; &nbsp; return n}func main() {&nbsp; &nbsp; buf := []byte{2, 4, 8, 16, 32, 64, 128, 255}&nbsp; &nbsp; fmt.Println(buf)&nbsp; &nbsp; fmt.Println(readUIntLE(buf, 0, 4))&nbsp; &nbsp; fmt.Println(readUIntLE(buf, 0, len(buf)))&nbsp; &nbsp; fmt.Println(readUIntLE(buf, len(buf)-1, 1))}输出:[2 4 8 16 32 64 128 255]26896077018410785783142679554255
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go