(bool)(i&1)和i%2 == 1相同吗?
(bool)(i & 1)
和i % 2 == 1
总是相同, i
是int
吗?
注意:总是说我的意思是所有平台(即使字节是16位)和所有C和C ++标准。
编辑:
对于存在bool
所有C和C ++标准。
没有。
int
1s’补码表示,-1的表示是1 ... 10
,因此它们不同。
无论如何, i % 2
对于负i
是负的(当它不是0时,它确实需要在C99中),因此对于负奇数不等于1。
没有。
例如,如果我是-1,请尝试它。 -1 % 2 == -1
, (bool) (-1 & 1)
为1。
(假设2补码)