(bool)(i & 1)
和 i % 2 == 1
总是相同的,其中 i
是 int
?
注意:我所说的始终是指所有平台(即使一个字节是 16 位)以及所有 C 和 C++ 标准。
编辑:
对于存在 bool
的所有 C 和 C++ 标准。
最佳答案
没有。
int
的
1s的补码表示,-1的表示为1 ... 10
,所以它们不同。
无论如何,i % 2
可以是负数的负数 i
(确实需要在 C99 中当它不为 0 时),因此对于负数不等于 1奇数。
关于c++ - (bool)(i & 1) 和 i % 2 == 1 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438402/