golang 十进制数转换成八位二进制数 字节操作 移位操作
package main
import (
"fmt"
)
func main() {
mapOne := []byte{191, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253}
var mapTwo []byte
// // 将每个字节的每一位分离出来并存入binaryDigits
for _, b := range mapOne {
fmt.Printf(" %08b ", b)
fmt.Printf("%v_", byte((b>>uint(7-0))&1))
fmt.Printf("%v_", byte((b>>uint(7-1))&1))
fmt.Printf("%v_", byte((b>>uint(7-2))&1))
fmt.Printf("%v_", byte((b>>uint(7-3))&1))
fmt.Println()
for j := 0; j < 8; j++ {
// 使用位移和按位与操作检查每一位
mapTwo = append(mapTwo, byte((b>>uint(7-j))&1))
}
}
fmt.Println()
fmt.Println(mapTwo)
}
10111111 1_0_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111111 1_1_1_1_
11111101 1_1_1_1_
[1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1]