<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ` `一個乘法器大致組成(最簡單的真值乘法器,當然不存在真值乘法器,這里以2個正數為例,原碼是相對于補碼和反碼而言)。3個寄存器和一個加法器和邏輯處理電路。 ## 流程示例 假設我們要計算 4 * 5。他們的原碼則是 0100, 0101(注,以4位存貯單元,因為是原碼,最高位不代表符號位)。用乘法器大致過程如下: * [ ] step1: 3個寄存器分別存放乘數0101,被乘數0100和一個部分積(用來暫存部分結果的寄存器),部分積初值為0。 * [ ] step2:首先判斷乘數寄存器(目前值是0101,既為5)的最低位為1.如果為1則將部分積的值通過加法器加上被乘數0100。因此此次步驟結束后,部分積寄存器的內容是0100. * [ ] step3:將乘數寄存器右移一位,同時將部分積寄存器也右移一位。同時乘數寄存器最低位溢出丟棄。而部分積寄存器最高位補0(采用算術右移,這里由于是原碼,補0即可),部分積寄存器最低位溢出后填充到乘數寄存器。因此,部分積寄存器原來值0100既變成了0010,而最低位的0溢出。乘數寄存器0101,變成了0|010,最低位0溢出,最高位被部分積溢出的0填充。(注 | 前面是被填充的0,后面是溢出后的乘數,后面都采用這種規則) * [ ] step4:判斷乘數寄存器。最低位為0,不做加法操作。直接執行第3步的移位操作。既有了部分積變成了0001,而乘數變成了00|01. * [ ] step5:判斷乘數寄存器的最低位為1,既采取2,3這2步,部分積0001加上被乘數0100變成了0101,移位后部分積變成了0010,而乘數變成了100|0. * [ ] step6:判斷乘數最低位為0,采取同3相同的步驟。既部分積0010變成了0001,而乘數變成了0100.至此所有乘數全部處理完畢。 * [ ] step7:最終結果為部分積做高位,乘數寄存器做低位的值 00010100,換成10進制為1 \* 2^4 + 1 \* 2^2 = 20 = 4 \* 5. ` `移動的次數就是寄存器的位寬。 ## 處理流程 ` `1.初始化乘數寄存器,被乘數寄存器和部分積寄存器(0) ` `2.判斷乘數寄存器最低位為1.進入2.1步驟,否則進入步驟3 ??` `2.1將部分積+被乘數,結果放到部分積 ` `3.部分積和乘數右移一位。部分積最高位采用算術右移規則。低位溢出到乘數最高位,乘數最低位溢出丟棄。 ` `4.判斷乘數乘數是否所有位數都處理,處理完畢則結束,返回結果為部分積+乘數(部分積做高位,乘數做低位,不是簡單的算術+)。否則返回到步驟2,循環。 ? ` `數學原理: 4 \* 5 = 100 \* 101 = 100 \*1 \* 2^10 + 100 \* 0 \* 2^1 + 100 \* 1 \* 2^0 ? `` ``因為硬件無法表示真值的,最為簡單的為原碼,既添加一個位做符號位,0為正,負為1.在做乘法時候,符號位單獨提出,后面2個數值做乘法運算,再將符號位做一次異或操作既可以得到結果的符號位,添加上即可。關于復雜的補碼計算器和更復雜的浮點。有機會再學習。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看