一个FLAG #04# 左移运算符
例子
#include <stdio.h> #include <string.h> // 左移运算符 int main() { for (int i = 0; i != 10 ; ++i) { printf("1 << %d: %d \n", i, 1 << i); } return 0; } /* 输出是 1 << 0: 1 即2^0 二进制 1 (把 1 左移了n位) 1 << 1: 2 即2^1 二进制 10 (把 1 左移了1位) 1 << 2: 4 即2^2 二进制 100 (把 1 左移了2位) 1 << 3: 8 1 << 4: 16 1 << 5: 32 1 << 6: 64 1 << 7: 128 1 << 8: 256 1 << 9: 512 所以 1 << n 是 2^n 二进制 1后面跟着n个0 (把 1 左移了n位) 用二进制数表达状态。 1位二进制只可以表达 2 种状态 0 与 1 而 2位二进制就可以表达 2 * 2 = 4 种状态 2 ^ 2 3位可以表达 2 * 2 * 2 = 8种状态 2 ^ 3 */