2017-11-11 362 views
2

我們的教授說,計算機邏輯,當您將號碼添加到另一個很重要所以A + B和B + A並不總是相等的。 雖然,我找不到時,他們會是不同的例子,爲什麼他們是不相等的。 我認爲這將有再次做位,但隨後事情,我不知道。a + b如何不等於b + a?

+0

是否有更多背景呢? – harold

+0

不,不是。不幸的是,就是這樣。 – Narciss

+0

你應該問問你的教授,然後回到我們身邊 – bee

回答

0

一個模糊的可能性是,如果a或b中的一個或另一個是高分辨率定時器值 - 自程序啓動後打勾。

由於在添加之前彈出其中一個值所消耗的cpu週期,因此可能總和可能因訂單而異。

1

雖然你不會分享很多背景,但聽起來好像你的教授沒有詳細說明或者你錯過了一些東西。

在他一般談論邏輯的情況下,他可能意味着+運算符的行爲取決於您如何定義它。

示例:定義(+) a b := if (a==0) then 5 else 0導致不是關聯的+算子,例如, 1 + 0是0,但0 + 1將5.有很多編程語言,允許運營商標準的重新定義這個(覆蓋)。

但與你分享的背景下,這是所有投機。

0

如果ab是帶副作用的表達式,那麼還有一種可能性。例如。

int x = 0; 

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

int b() { 
    return x; 
} 

a() + b()將返回2和b() + a()將返回1(都來自初始狀態)。

或者它可能是abNaN,在這種情況下甚至a == a是錯誤的。雖然這個與「當你添加一個號碼到另一個」沒有關係。

相關問題