一般情况下,判断整数的奇偶性都会使用取模预算, 性能方面没有测试,但是由于机器可以直接操作二进制,应该会比较快,不过这点性能提升一般情况下对整体性能的影响不大,可以忽略不计。1
2
3
4
5if num ==0 {
fmt.Println("even")
} else {
fmt.Println("odd")
}
不过,还有一种方式也是类似,使用 按位与 来判断整数奇偶性:1
2
3
4
5if num&1==0 {
fmt.Println("even")
} else {
fmt.Println("odd")
}
也能达到相同的效果。
类似的,使用二进制运算也可以进行乘除法的运算:
乘法左移:1
2
3
4
5//a = a * 4
a = a << 2
//b = b * 8
b = b << 3
除法右移:1
2
3
4
5//a = a / 4
a = a >> 2
//b = b / 8
b = b >> 3
这些都是一些二进制运算的技巧,记下备忘。