使用Shift-Add算法來建造一個乘法器
現在你已經知道了如何使用累加器執行二進製加法,現在是使用累加器建造乘法器的時候了。
在二進製中,乘法可以通過兩種方式完成。要執行X*Y,只需將X加進累加器Y次,也可以使用更有效的方法:Shift -Add。Shift-Add類似於用手乘十進製數的長乘法方法。在豎式乘法中(就是小學學的那個筆算多位數相乘的方法),把X乘以Y的每一位數字,然後把每一個結果相加在一起即為解(這裡不需要多說)。
類似地,使用Shift-Add,掃描Y中的每個位,對於每個數值為1的位,都會將X加到累加器中一次。在每一步之後,左移X以便將其值增加到下一個位置。
Terraria中的乘法器(示例)如下:
正如你所看到的,這是我向你展示的第一個需要一個半磚驅動來操作的裝置。這是因為Shift-Add方法需要對每一位都執行一次運算,在這種情況下需要執行8次。
從上到下的第一行表示Y值,第二行表示X值,底部的一行用來保存結果。當左下角開關被啟動時,半磚驅動開啟並啟動產生一次移位,並在每個tick中執行一次操作。在每次操作中,通過右移位從Y值中讀取單個位。如果來自Y的一個位的值為1,則黃線觸發一組故障燈門,將X的當前值發送到累加器。然後,X值被左移。 請注意,在Y值的右移和X值的左移之間放置了一個額外的故障燈門。 這是為了確保X值在被左移之前會被發送到累加器。 然後,半磚驅動重複這8tick的整個過程,直至完成乘法運算。
使用與門建造多路複用器
在數字電路中,多路複用器是一種使用二進製輸入端從一個長值中選擇單個位的設備。
例如,可以使用多路複用器從一系列傳送器中選擇單個傳送器以建造傳送陣。 多路複用器也可用於將較小的二進製數轉換為十進製單數,我將在以後的教學中展示。 這是一個多路複用器,它使用3位的輸入端在8個不同的輸出端之間進行選擇:
當前,二進製輸入端的值為0,所以使最底端的火把處於亮起狀態。通過輸入一個二進製數,其相應的火把將被多路複用器觸發。多路複用器使用有分叉結構的與門裝置工作。
每兩個相鄰的垂直的與門,其第一個與門最上面的邏輯燈為關閉狀態,第二個與門的邏輯燈為開啟狀態(可見下圖)。 拉動這相應兩個與門所屬的一列的開關會使這兩個燈交換狀態。每個與門也從其左邊的列中接收一個輸入信號。這樣,你就可以控制信號從左到右的傳輸。
你可以很容易地複製和貼上一個複用器,使它能控制的位數翻倍並且增加輸入端的個數。
以上就是小編給大家帶來的泰拉瑞亞電路裝置技巧一覽,希望能夠幫助各位玩家。
來源:遊俠網