我知道的原理a&1:例如:
4&1: 0100
0001
= 0000
Run Code Online (Sandbox Code Playgroud)
和
5&1: 0101
0001
= 0001
Run Code Online (Sandbox Code Playgroud)
但我想知道原理是什么以及如何a%2
哪个更快,a%2或者a&1?
有两种情况:
x % 2编译x & 1。因此速度将相同,因为两者将具有相同的机器代码。x % 2和 的结果x & 1完全不同,在这种情况下,您应该使用x % 2取模并x & 1测试 LSB。https://godbolt.org/z/cEY4dM