我试图找出按位运算符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实际上更快一点,如果你为交换采用一个单独的变量,它的时间几乎是一半其他两个。有人可以解释这是怎么回事。
答案 0 :(得分:0)
我认为我终于得到了自己问题的答案。在大多数计算机中,赋值由nand和nor门完成,因为它们是最容易制作的。 XOR门需要实现这些门的最少三个步骤组合,即3个门延迟。在加法等算术运算中,您也可以在3个门延迟中实现进位超前加法器。因此,没有时间差异。