我有一个 C++ 头文件,其中包含以下定义:
#define CACHE_NUM_WAYS (1<<1)
#define CACHE_DATA_SIZE (1<<8)
它在其余代码中用作整数。
这是什么意思?它的价值是什么?
原文由 itamar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 C++ 头文件,其中包含以下定义:
#define CACHE_NUM_WAYS (1<<1)
#define CACHE_DATA_SIZE (1<<8)
它在其余代码中用作整数。
这是什么意思?它的价值是什么?
原文由 itamar 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
1 << 1 表示:
1 << 8 表示:
这是一个位移操作。对于右侧的每个 1,您可以将自己视为将左侧的值乘以 2。因此,2 << 1 = 4 和 2 << 2 = 8。这比 1 * 2 更有效。
此外,您可以将 4 >> 1 = 2 (并且 5 >> 1 = 2 因为您向下舍入)作为逆运算。