所以,我一直在努力學習計算機在過去的幾個月,並真正瞭解他們的工作方式。我最近在學習減法器,我在想..我有幾個關於ALU的問題....
首先,據我瞭解,一個減法器使用兩個的恭維來得到一個結果。但是,它爲什麼減去?例如,這兩人對5(0101)的讚美是1011.但是,這也是一個積極的十一。即使數字被否定,什麼使得減法器將其作爲負數而不是另一個正數呢?如果問題是8 - 5,是什麼阻止了8 + 11? 什麼使它識別來自無符號位的有符號位?我聽說程序運行決定了,但問題是程序有能力決定是否添加或減少,以及如何解釋CPU和ALU。
另外,我已經知道AlU使用一個在加法和減法之間切換的電路。這個電路如何工作?是什麼讓它決定是否增加或減少?
最後,這個電路如何從加法切換到減法?我已經看到的唯一減法器是一個沒有附加門的加法器?電路在可以改變功能的東西中有何不同?
謝謝您的回答,但我仍然不清楚我的第一個問題......如果同樣的數字也可以添加爲不同的結果,如何使這兩個讚美工作?再次使用該示例。這兩個對5的讚美也是11.所以,如果你想通過減法器來做8-5,那麼減法器中的結果是8-5而不是5 + 11的結果呢?如果它不需要知道,那麼它如何產生不同的結果? –
對不起,但我想到一個更好的方式來重新考慮我的想法。比方說,我想減去1和1,並在減法器的末尾放置燈泡來表示我的結果。當然,它會減少,兩個燈泡都不亮。減法器否定該數字,然後在添加之前添加一個數字。因此,1否定爲0加1仍然爲1.因爲減法器與加法器有相同的電路,爲什麼不加1和1(因爲這些都是否定後的e結果)而不是相減?在這種情況下,是什麼使得它產生了沒有光的結果,而不是(1)光(10)? –
我不知道你想用燈泡的例子來說明。你說-5和11是相同的數字,你可能是對的。但這隻意味着11對於這個特定的ALU來說太大(這是一個溢出)。無論如何,在4位系統中,1是「0001」,-1是「1111」,因此「0001 + 1111 = 0000」。 –