在 Go 操场上尝试了这段代码:
package main
import (
"fmt"
)
func main() {
log2Dim := uint32(9)
SIZE := 1 << 3 * log2Dim
fmt.Printf("Result: %v\n", SIZE)
SIZE = 1 << (3 * log2Dim) // => only difference: adding ( )
fmt.Printf("Result: %v\n", SIZE)
}
这是打印出来的:
Result: 72
Result: 134217728
为什么仅仅添加到包含和操作( )的语句中会产生巨大的差异?<<*
据此,*有更高的优先级,<<也就是谷歌搜索bitshift优先级golang的第一个结果。
喵喵时光机
慕沐林林
相关分类