golang:如何获取字节的第一位

fab*_*ous 1 byte bit-manipulation bit go bitwise-operators

我有一个哈希:

b := hash.Sum(nil)
Run Code Online (Sandbox Code Playgroud)

我真的只对该字节的第一位感兴趣。是0还是1?

到目前为止我有这个:

s := strconv.FormatInt(int64(b[0]),2)
if s[0] == '0' {
 // it's 0
} else {
  // it's 1
}
Run Code Online (Sandbox Code Playgroud)

但我确信有一种更优雅(也更高效?)的方法来做到这一点。

dav*_*iod 6

你可以只检查按位与运算符的结果

if b[0] & 0x1 == 0x1 {
    // it's 1
} else {
    // it's 0
}
Run Code Online (Sandbox Code Playgroud)