a + b如何不等于b + a?

时间:2017-11-11 16:51:31

标签: numbers logic equals

我们的教授说,在计算机逻辑中,当你向另一个人添加一个数字时,它很重要,所以a + b和b + a并不总是相等。 虽然,我无法找到一个例子,说明它们何时会有所不同以及为什么它们不会平等。 我认为它必须用钻头做一些事情但是又一次,我不确定。

3 个答案:

答案 0 :(得分:1)

虽然你没有分享很多背景,但听起来好像你的教授没有详细说明,或者你错过了什么。

如果他一般都在谈论逻辑,他可能意味着+运算符的行为取决于你如何定义它。

示例:定义(+) a b := if (a==0) then 5 else 0导致+运算符不是关联的,例如1 + 0将为0但0 + 1将为5.有许多编程语言允许对标准运算符进行重新定义(覆盖)。

但是根据你分享的背景,这都是推测性的。

答案 1 :(得分:0)

一个模糊的可能性是a或b中的一个或另一个是高清定时器值 - 自程序启动以来打勾。

由于在添加之前弹出其中一个值所消耗的cpu周期,因此总和可能会因订单而异。

答案 2 :(得分:0)

另一种可能性是ab是带副作用的表达式。 E.g。

int x = 0;

int a() {
    x += 1;
    return x;
}

int b() {
    return x;
}

a() + b()将返回2,b() + a()将返回1(均来自初始状态)。

或者ab可能是NaN,在这种情况下,即使a == a也是假的。虽然这个与#34没有关联;当你向另一个人添加号码时,#34;