按位和简单逻辑之间的速度性能

时间:2017-08-07 11:14:14

标签: performance time execution

我试图找出按位运算符XOR和变量交换的简单算术逻辑之间的速度差异。我写了一个简单的程序: -

 for(long i=0; i<1500000; i++){
    a=a+b;
    b=a-b;
    a=a-b;
}

而对于XOR,它是

for(long i=0; i<1500000; i++){
    a=a^b;
    b=a^b;
    a=a^b;
}

我认为按位运算符会更快,因为它只使用两个门,但事实证明算术逻辑1实际上更快一点,如果你为交换采用一个单独的变量,它的时间几乎是一半其他两个。有人可以解释这是怎么回事。

1 个答案:

答案 0 :(得分:0)

我认为我终于得到了自己问题的答案。在大多数计算机中,赋值由nand和nor门完成,因为它们是最容易制作的。 XOR门需要实现​​这些门的最少三个步骤组合,即3个门延迟。在加法等算术运算中,您也可以在3个门延迟中实现进位超前加法器。因此,没有时间差异。