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

相当于 Golang 中的 readUIntLE?

相当于 Golang 中的 readUIntLE?

Go
阿晨1998 2021-10-04 16:56:38
我需要在缓冲区中的位置 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


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

添加回答

举报

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