go语法里 & 符号用法?

func toBytes(value int64) []byte {
    var result []byte
    mask := int64(0xFF)
    shifts := [8]uint16{56, 48, 40, 32, 24, 16, 8, 0}
    for _, shift := range shifts {
        result = append(result, byte((value>>shift)&mask))
    }
    return result
}

想问一下这里 &mask是什么意思?它对于byte转换出来的字节起到什么作用?

阅读 5.7k
1 个回答

&按位与操作,就是把value>>shift的结果和mask做一个AND,在这里的效果就是只保留最低8位,其余全部置0

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题