我需要在缓冲区中的位置 Y 读取 X(例如,3)个字节。在 Node.js 中,我通过使用 Buffer 类和 readUIntLE 函数来做到这一点。例如:readUIntLE(position, 3)。Golang 中的那个过程相当于什么?
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
例如,
package main
import "fmt"
func readUIntLE(buf []byte, offset, byteLength int) uint64 {
var n uint64
buf = buf[offset : offset+byteLength]
if len(buf) > 8 {
buf = buf[:8]
}
for i, b := range buf {
n += uint64(b) << uint(8*i)
}
return n
}
func main() {
buf := []byte{2, 4, 8, 16, 32, 64, 128, 255}
fmt.Println(buf)
fmt.Println(readUIntLE(buf, 0, 4))
fmt.Println(readUIntLE(buf, 0, len(buf)))
fmt.Println(readUIntLE(buf, len(buf)-1, 1))
}
输出:
[2 4 8 16 32 64 128 255]
268960770
18410785783142679554
255
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消