Golang - 将 [8]bool 转换为字节

标签 go

我正在尝试将长度为 8 的 bool 数组转换为字节。有谁知道怎么做吗?

mei := [8]bool{true, true, true, true, false, false, false, false}
myvar := ConvertToByte(mei)

最佳答案

迭代各个位,边移动边设置。

以下是最高有效位位于数组中索引 0 处的情况的代码:

func ConvertToUint8(mei [8]bool) uint8 {
    var result uint8
    for _, b := range mei {
        result <<= 1
        if b {
            result |= 1
        }
    }
    return result
}


mei := [8]bool{true, true, true, true, false, false, false, false}
myvar := ConvertToUint8(mei)
fmt.Printf("%b\n", myvar) // prints 11110000

以下是最低有效位位于数组中索引 0 处的情况的代码:

func ConvertToUint8(mei [8]bool) uint8 {
    var result uint8
    for _, b := range mei {
        result >>= 1
        if b {
            result |= 0b10000000
        }
    }
    return result
}

mei := [8]bool{true, true, true, true, false, false, false, false}
myvar := ConvertToUint8(mei)
fmt.Printf("%08b\n", myvar) // prints 00001111

关于Golang - 将 [8]bool 转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73710132/

相关文章:

Golang 类型断言/转换为中间结构

go - SendGrid SMTP 电子邮件不会发送到 Go 中的抄送和密件抄送地址

struct - 在 Go 中使用结构进行原子比较和交换

Golang rsa-oaep解密失败,前端使用webcrypto

go - mgo 不保证不同的指数

concurrency - 匿名结构和空结构

url - 使用 net/url 内置包解析带有矩阵参数的 URL

multithreading - Golang 中的可窥视队列

css - 使用 GO 导入的 Style.css 出现 MIME 错误

go - 在 Go 中处理来自 base64 解码的错误