我们的教授说,在计算机逻辑中,当你向另一个人添加一个数字时,它很重要,所以a + b和b + a并不总是相等。 虽然,我无法找到一个例子,说明它们何时会有所不同以及为什么它们不会平等。 我认为它必须用钻头做一些事情但是又一次,我不确定。
答案 0 :(得分:1)
虽然你没有分享很多背景,但听起来好像你的教授没有详细说明,或者你错过了什么。
如果他一般都在谈论逻辑,他可能意味着+
运算符的行为取决于你如何定义它。
示例:定义(+) a b := if (a==0) then 5 else 0
导致+
运算符不是关联的,例如1 + 0将为0但0 + 1将为5.有许多编程语言允许对标准运算符进行重新定义(覆盖)。
但是根据你分享的背景,这都是推测性的。
答案 1 :(得分:0)
一个模糊的可能性是a或b中的一个或另一个是高清定时器值 - 自程序启动以来打勾。
由于在添加之前弹出其中一个值所消耗的cpu周期,因此总和可能会因订单而异。
答案 2 :(得分:0)
另一种可能性是a
和b
是带副作用的表达式。 E.g。
int x = 0;
int a() {
x += 1;
return x;
}
int b() {
return x;
}
a() + b()
将返回2,b() + a()
将返回1(均来自初始状态)。
或者a
或b
可能是NaN
,在这种情况下,即使a == a
也是假的。虽然这个与#34没有关联;当你向另一个人添加号码时,#34;