如何在golang中将字节数组打印为二进制?

hec6srdp  于 2023-02-27  发布在  Go
关注(0)|答案(2)|浏览(257)

如何在Golang中将字节数组[]byte{255, 253}打印为二进制?

[]byte{255, 253} --> 1111111111111101
w6lpcovy

w6lpcovy1#

我找到的最简单的方法:

package main

import "fmt"

func main() {
    bs := []byte{0x00, 0xfd}
    for _, n := range(bs) {
        fmt.Printf("%08b ", n) // prints 00000000 11111101
    }
}

请输入此代码:https://go.dev/play/p/piJV_3OTHae

wsewodh2

wsewodh22#

或者用这个简单的版本

func printAsBinary(bytes []byte) {

    for i := 0; i < len(bytes); i++ {
        for j := 0; j < 8; j++ {
            zeroOrOne := bytes[i] >> (7 - j) & 1
            fmt.Printf("%c", '0'+zeroOrOne)
        }
        fmt.Print(" ")
    }
    fmt.Println()
}

[]byte{0, 1, 127, 255} --> 00000000 00000001 01111111 11111111

相关问题