if (!(y&1))
{
c[x++]=d[--y];
}
我无法理解这句话的作用。 y是一个int值。
什么是不是(!)的标志?
答案 0 :(得分:2)
!
将0
转换为1
,将其他所有内容转换为0
。
y&1
如果0
的最新位为y
(0
是y
的幂,则2
会产生......0
0000001
-------
0000000
:
......1
0000001
-------
0000001
与
if
因此,y
只测试{{1}}是否为 power 的倍数为2。
答案 1 :(得分:1)
当数字y为偶数时,条件为真,当数字y为奇数时,条件为假。
表达式
y & 1
表示整数y和1的按位AND。结果实际上等于y的最低有效位。奇数的最后一位设置为1;对于偶数,最后一位始终为零。
添加NOT!运算符将该位反转。