-6
if (!(y&1))

    {

        c[x++]=d[--y];

    }

我无法理解这个声明的作用。y 是一个 int 值。

非(!)标志是什么?

4

2 回答 2

2

!转换0为和其他1一切0

结果y&10如果最新位y0(即y的幂2):

......0
0000001
-------
0000000

相对

......1
0000001
-------
0000001

所以,if简单的测试如果y力量2的倍数。

于 2013-11-02T15:47:31.670 回答
1

当数字 y 为偶数时条件为真,当数字 y 为奇数时条件为假。

表达方式

y & 1

表示整数 y 和 1 的按位与。结果实际上等于 y 的最低有效位。奇数将其最后一位设置为 1;对于偶数,最后一位始终为零。

添加一个 NOT !运算符反转该位。

于 2013-11-02T15:49:04.127 回答