怪奇物语

怪奇物语

首页 新随笔 联系 管理

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]
posted on 2025-02-12 10:42  超级无敌美少男战士  阅读(25)  评论(0)    收藏  举报