【发布时间】:2015-02-08 00:20:10
【问题描述】:
在查看代码时,我看到了这一点。
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(i & (1<<j))
{
//code
}
}
}
谁能知道这个循环是如何工作的? 我知道正确的部分会给出 pow(2,j),但我不明白这里将如何工作。
【问题讨论】:
-
请注意,此代码仅在
n < CHAR_BIT*sizeof(int)时有效。 -
好的,你能解释一下 i & 2^j 将如何产生结果吗?
标签: if-statement operators bit-manipulation conditional-statements bitwise-operators