以下哪种技术是将整数除以2的最佳选择,为什么?
技巧1:
x = x >> 1;
Run Code Online (Sandbox Code Playgroud)
技术2:
x = x / 2;
Run Code Online (Sandbox Code Playgroud)
这x是一个整数.
为什么C的printf格式字符串有%c和%s?
我知道它%c代表一个单个字符并%s表示一个以空字符结尾的字符串,但单独的字符串表示不足够吗?
有时我需要确定某个整数是偶数.因此我可以使用以下代码:
int number = /* magic initialization here */;
// make sure the number is even
if ( number % 2 != 0 ) {
number--;
}
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有被非常有效的最有效的方式做到这一点,所以我可以做到以下几点:
int number = /* magic initialization here */;
// make sure the number is even
number &= ~1;
Run Code Online (Sandbox Code Playgroud)
但(除了不可读)我不确定该解决方案是否完全可移植.
注意:此代码应该只适用于正整数,但有一个解决方案也适用于负数将是一个加号.