+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > 站长学院 > Golang - 将布尔值转换为字节 >

Golang - 将布尔值转换为字节

时间:2024-04-06 14:52:03

今天将给大家带来《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 - 将布尔值转换为字节》,希望本文对你有所帮助!

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

Title