回覆列表
  • 1 # 朕氣十足

    乘數、被乘數都要先轉化為二進位制,二進位制的乘法遠比十進位制簡單,比如乘數是1011,只需將將被乘數分別左移3位、1位,移動後補入0,並將這三個數

  • 2 # 每天學一點法律

      透過加減法和移位來實現的。

      把除法轉成乘法,乘法轉成加法,減法也轉成加法。

      具體的操作步驟:

      假設計算3*3,原碼是0011 * 0011(以4位存貯單元,因為是原碼,最高位不代表符號位)

      3個暫存器分別存放乘數0011 被乘數 0011 一個部分積初始值為0。

      首先判斷乘數暫存器(目前為0011)的最低位為1。如果為1則將部分積的值透過加法器加上被乘數0011。因此此步結束後部分積暫存器內容為0011。

      將乘數暫存器右移一位,同時將部分積暫存器也右移一位。同時乘積暫存器最低位溢位丟棄。部分積暫存器高位補0,地位溢位後填充到乘數暫存器。因此。部分積寄存其原來的值0011變成了0001。乘數暫存器0011變成了1001(這裡低位的1溢位,最高位被部分積溢位的1填充)。

      判斷乘數暫存器最低位(0001).為1。將部分積透過加法器加上被乘數0011。因此此不結束後部分積暫存器內容是(0001+0011=0100)。

      乘數暫存器右移一位,同時將部分積暫存器也有右移一位。同第2步。因此部分積暫存器原來的值0100變成了0010。乘數暫存器1001變成了0100,低位1溢位,最高位被部分積溢位的0填充。

      判斷乘數暫存器低位為0不做加法操作直接做第2步的移位操作。既有了部分積變成0001,乘數變成了0010。

      判斷乘數暫存器低位為0不做加法操作直接做第2步的移位操作。既有了部分積變成0000,乘數變成了1001;此時所有乘數全部處理完畢。

      最終結果將部分積作為高位,乘數暫存器作為低位得到值為00001001 換算成10進製得到9。

  • 3 # 愛吃紅燒肉的男孩

    乘數、被乘數都要先轉化為二進位制,二進位制的乘法遠比十進位制簡單,比如乘數是1011,只需將將被乘數分別左移3位、1位,移動後補入0,並將這三個數(被乘數左移3位的、被乘數左移1位的及未移位的被乘數)在累加器中相加,所得總和就是積,根據需要積可再轉化為十進位制。除法與乘法類似,只不過將左移改為右移,加改成減。實際上減也是透過取補碼後再加,因此計算機晶片上的累加器是最繁忙的部分。三角函式我猜是用級數的方法變成四則運算

  • 中秋節和大豐收的關聯?
  • 我現在26歲,手裡存款27w,我如何能在30歲賺到第一個100w?