你如何读取每 N 位?

How do you read every N bits?

有一个 64 位有符号整数,我正在尝试每 4 位读取一次。

a := int64(1229782938247303441)
for i := 0; i < 16; i++ {
    fmt.Printf("%v\n", byte(a) >> 4)
    a >>=  4 
}

最后一个值为 0,应该是 1。

使用a & 0xf获取低4位。

0xf的低四位为1,其他所有位为0。按位与表达式 a & 0xf 的结果具有来自 a 的低四位和所有其他位中的零。

a := int64(1229782938247303441)
for i := 0; i < 16; i++ {
    fmt.Printf("%v\n", a & 0xf)
    a >>=  4 
}