你如何读取每 N 位?

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


a := int64(1229782938247303441)

for i := 0; i < 16; i++ {

    fmt.Printf("%v\n", byte(a) >> 4)

    a >>=  4 

}

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


慕哥6287543
浏览 94回答 1
1回答

慕码人2483693

用于a & 0xf获取底部 4 位。该值0xf在低四位中具有一位,在所有其他位中具有零。按位与表达式的结果a & 0xf具有低四位a,所有其他位为零。a := int64(1229782938247303441)for i := 0; i < 16; i++ {&nbsp; &nbsp; fmt.Printf("%v\n", a & 0xf)&nbsp; &nbsp; a >>=&nbsp; 4&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go