node.js - 等价于Golang中的readUIntLE?

标签 node.js go

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

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

例如:readUIntLE(position, 3)

Golang中的该过程相当于什么?

谢谢!

最佳答案

例如,

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

关于node.js - 等价于Golang中的readUIntLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152150/

相关文章:

mongodb - cloudfoundry 中的 Node.js mongodb-native 驱动认证

javascript - 如何使用 typescript 定义文件中的枚举?

go - 如何编码匿名结构?

go - 我应该使用 panic 还是返回错误?

node.js - 将点几何添加到 Postgresql

javascript - 缩短公会角色列表

javascript - 将使用 nvm 在项目上设置默认 Node 版本的点文件?

go - 将指针作为接口(interface)类型传递

go - 结构体在 Go 中包含接口(interface)时的 new 与 {}

go - 定义顶级 Go 模板