3 回答
TA贡献1846条经验 获得超7个赞
遍历位,移动和设置。
下面是最高有效位在数组中索引 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
TA贡献1806条经验 获得超5个赞
func ConvertToByte(bits [8]bool) byte {
var b byte
for _, bit := range bits {
b <<= 1
if bit {
b |= 1
}
}
return b
}
TA贡献1803条经验 获得超3个赞
只是有点小题大做。遍历数组:
func boolsToByte( flags [8]bool ) (b byte) {
mask := byte(0x80)
for _, f := range flags {
if f {
b |= mask
}
mask >>= 1
}
return b
}
- 3 回答
- 0 关注
- 440 浏览
添加回答
举报
