Ant*_*ony 1 c++ bitwise-operators
我看到有人使用这种方法来增加变量:
r = (r + 1) & 0xf;
Run Code Online (Sandbox Code Playgroud)
这种方法比仅使用更好/更快:
r++;
Run Code Online (Sandbox Code Playgroud)
为什么有人会使用按位,如果只是重复,则使用0xf?
Jam*_*lis 14
那些不一样.第一个增量r然后对它执行模运算,有效地做同样的事情:
r = (r + 1) % 16;
Run Code Online (Sandbox Code Playgroud)
gre*_*ade 11
表达方式:
r = (r + 1) & 0xf;
Run Code Online (Sandbox Code Playgroud)
是实际上等同于(假设r是保证非负):
r = (r + 1) % 16;
Run Code Online (Sandbox Code Playgroud)
因此,无法比较上述任何一种陈述r++.哪个"更快"或"更好"并不重要,因为它们首先不会做同样的事情.