Jor*_*dan 3 c bit-manipulation
unsigned long long n = 0;
for (int i = 0; i <= 64; i+=2)
n |= 1ULL << i; //WHAT DOES THIS DO? AH!
Run Code Online (Sandbox Code Playgroud)
我试图围绕这段代码实际上做的第三行.有人请帮忙清除这个!
该行设置n的第 i 位.
1ULL 是整数1,类型为unsigned long long.<<是一个bithift运算符.1ULL << i等于2 i,或二进制:100...0i为零.n |= x;是复合赋值运算符.它类似于写作n = n | x;.|是按位OR运算符.维基百科有一个例子,显示了在一般情况下按位OR运算符的工作原理:
0101 (decimal 5)
OR 0011 (decimal 3)
= 0111 (decimal 7)
Run Code Online (Sandbox Code Playgroud)
有关
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |