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转换出来的字节起到什么作用?
&
是按位与操作,就是把value>>shift
的结果和mask
做一个AND,在这里的效果就是只保留最低8位,其余全部置0