gpt4 book ai didi

go - 如何仅使用 4 位来表示 Go 中的数字?

转载 作者:IT王子 更新时间:2023-10-29 01:03:55 25 4
gpt4 key购买 nike

我正在尝试将数字表示压缩为更少的位。例如,现在我正在使用 float64 来表示一个数字,例如 8.0。我只需要 4 位来表示 8.0,所以我试图找到一种方法将 float64 表示转换为 4 位表示。我知道我可以使用 uint8 仅使用 8 位来表示 8,但这对我的应用程序来说还不够。我需要在空间中挤压那些额外的小部分。

我查看了 Go 标准库,但没有找到任何可以让我用少于 8 位表示数字的东西。我错过了可以帮助我做到这一点的包裹吗?我该如何解决这个问题?

最佳答案

Go 标准库确实有一个可变长度数字的示例。

package main

import (
"encoding/binary"
"fmt"
)

func main() {
buf := make([]byte, binary.MaxVarintLen64)
x := int64(8)
n := binary.PutVarint(buf[:cap(buf)], x)
buf = buf[:n]
fmt.Println(x, len(buf), buf)
y, m := binary.Varint(buf)
fmt.Println(y, m)
}

Playground :https://play.golang.org/p/-p6M6OSHcMF

输出:

8 1 [16]
8 1

关于go - 如何仅使用 4 位来表示 Go 中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55408196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com