【问题标题】:Speed performance between bitwise and simple logic加速按位和简单逻辑之间的性能
【发布时间】:2017-08-07 11:14:13
【问题描述】:

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

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

而对于异或,它是

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

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

【问题讨论】:

标签: performance time execution


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    相关资源
    最近更新 更多