Mih*_*yan 27 c c++ cross-platform
是(bool)(i & 1)
和i % 2 == 1
总是相同的地方i
是int
?
注意:总是说我的意思是所有平台(即使字节是16位)和所有C和C++标准.
编辑:
适用于所有C和C++标准bool
.
Ste*_*sop 49
没有.
1的补码表示int
,-1的表示是1 ... 10
,所以它们不同.
无论如何,i % 2
对于负数可能是负的i
(当它不是0时,它必须在C99中),因此对于负奇数不等于1.