从理论上讲,现代CPU更快:
从表中接收NOT结果
或通过~
(在C)操作计算?
假设所有表都适合L1缓存.
按位不是:
uint8_t bitwise_not(uint8_t arg) { return ~arg; }
表不是:
// precalculcating table (once) uint8_t table[0x100]; for (int i = 0; i < 0x100; ++i) { table[i] = ~static_cast(i); } // function uint8_t table_not(uint8_t arg) { return table[arg]; } // xor_not: uint8_t xor_not(uint8_t arg) { return arg ^ 0xff; }
在没有一个操作,但几十亿次操作,是否比任何逻辑操作更快地读取L1缓存?(我认为L1更快,但不能证明它.)
实际上,如何衡量它?
都不是.只需在代码中使用〜运算符内联.这是一台机器指令.函数调用或表查找有几个.没有办法可能更快.
我无法解释你的奇怪信念,即L1缓存比寄存器更快.