以下哪种技术是将整数除以2的最佳选择,为什么?
技术1:
x = x >> 1;
技术2:
x = x / 2;
这x
是整数。
x = x >>> 1
。还要注意,根据平台和编译器的不同,使用移位手动优化除法和乘法可能是非常合理的。-考虑微控制器,例如,没有直接的ALU乘法支持。
x /= 2
因为x >>= 1
看起来太像单子绑定了;)
x = x / 2
而不是更具可读性x /= 2
。主观上的偏爱可能是:)
⬜=
组合的语言中,应尽可能使用它们。它消除了对这一事实的噪音和着重x
进行修改,而一般=
操作,而表明,它发生在一个完全新的价值不依赖于旧的。-始终避免联合运营商(以便它的可读性,以便别人谁只知道数学运算符)可能有它的点为好,但随后你需要放弃是非常有用的++
,--
,+=
,太。
x
,则这两种方法都不适合:应为x >>= 1
或x /= 2
,这取决于您要在操作中表达的内容。不是因为它更快(任何现代编译器都会将所有等效变体编译为相同,快速的汇编),而是因为它不那么令人困惑。