一种方法是遍历字节,并使用第二次循环逐位移位字节值,并使用位掩码测试位。并将结果添加到输出切片。
这是它的实现:
func bits(bs []byte) []int { r := make([]int, len(bs)*8) for i, b := range bs { for j := 0; j < 8; j++ { r[i*8+j] = int(b >> uint(7-j) & 0x01) } } return r}测试它:
fmt.Println(bits([]byte{3, 255}))输出(在Go Playground上尝试):
[0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1]



