我有一个包含以下定义的 C++ 头文件:
#define CACHE_NUM_WAYS (1<<1)
#define CACHE_DATA_SIZE (1<<8)
在其余代码中用作整数。
这是什么意思?它的值(value)是什么?
最佳答案
1 << 1 表示:
00000000 00000001 changes to 00000000 00000010
1 << 8 表示:
00000000 00000001 changes to 00000001 00000000
这是一个位移操作。对于右侧的每个 1,您可以将自己视为将左侧的值乘以 2。因此,2 << 1 = 4 和 2 << 2 = 8。这比 1 * 2 更有效。
另外,你可以做 4 >> 1 = 2(和 5 >> 1 = 2,因为你向下舍入)作为逆运算。
关于C++:(a<<b) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983078/