登录
首页 >  Golang >  Go问答

Golang - 将布尔值转换为字节

来源:stackoverflow

时间:2024-04-04 13:00:29 417浏览 收藏

golang学习网今天将给大家带来《Golang - 将布尔值转换为字节》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我正在尝试将长度为 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
func ConvertToByte(bits [8]bool) byte {
    var b byte
    for _, bit := range bits {
        b <<= 1
        if bit {
            b |= 1
        }
    }
    return b
}

好了,本文到此结束,带大家了解了《Golang - 将布尔值转换为字节》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>