• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

JavaScript实现MIPS乘法模拟

JavaScript 水墨上仙 2911次浏览

JavaScript实现MIPS乘法模拟

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>MIPS MULTIPLICATION SIMULATOR </title>
    <script type="text/javascript">
        /* CREATED BY SERKAN SENDUR */
        function StringToNumberArray(Bin) {
            var numberArray = [];
            for (var i = 0; i < Bin.length; i++) {
                numberArray.push(Bin.substring(i, i + 1));
            }
            return numberArray;
        }
        function ConvertToDecimal(Bin) {
            var decimalNumber = 0;
            var numberArray = StringToNumberArray(Bin);
            numberArray.reverse();
            for (var i = 0; i < numberArray.length; i++) {
                decimalNumber += numberArray[i] * Math.pow(2, i);
            }
            return decimalNumber;
        }
        function ConvertToBinary(dec) {
            var bits = [];
            var dividend = dec;
            var remainder = 0;
            while (dividend >= 2) {
                remainder = dividend % 2;
                bits.push(remainder);
                dividend = (dividend - remainder) / 2;
            }
            bits.push(dividend);
            bits.reverse();
            return bits.join("");
        }
        function Multiply() {
            var firstNumber = document.getElementById("txtFirst").value;
            var secondNumber = document.getElementById("txtSecond").value;
            var multiplier = ConvertToBinary(firstNumber);
            var multiplicant = ConvertToBinary(secondNumber);
            var product = 0;
            var step = "Initial values";
            var iteration = 0;
            AppendToTable(iteration, step, multiplier, multiplicant, product);
            multiplicationAlgoritm(multiplier, multiplicant, product, 4);
        }
        function multiplicationAlgoritm(multiplier, multiplicant, product, counter) {
            if (counter > 0) {
                var iteration = 5 - counter;
                var decProduct = ConvertToDecimal(product);
                var decMultiplier = ConvertToDecimal(multiplier);
                var decMultiplicant = ConvertToDecimal(multiplicant);
                if (Right(multiplier, 1) == "1") {
                    decProduct = decProduct + decMultiplicant;
                    product = ConvertToBinary(decProduct);
                    AppendToTable(iteration, "1a", multiplier, multiplicant, product);
                }
                else {
                    AppendToTable(iteration, 1, multiplier, multiplicant, product);
                }
                decMultiplicant = ConvertToDecimal(multiplicant);
                decMultiplicant = decMultiplicant << 1;
                multiplicant = ConvertToBinary(decMultiplicant);
                AppendToTable(iteration, 2, multiplier, multiplicant, product);
                decMultiplier = ConvertToDecimal(multiplier);
                decMultiplier = decMultiplier >> 1;
                multiplier = ConvertToBinary(decMultiplier);
                AppendToTable(iteration, 3, multiplier, multiplicant, product);
                counter--;
                multiplicationAlgoritm(multiplier, multiplicant, product, counter);
            }
        }
        function AppendToTable(iteration, step, multiplier, multiplicant, product) {
            var row = document.getElementById("tblResults").insertRow();
            var cell = row.insertCell();
            cell.innerText = iteration;
            var cell = row.insertCell();
            cell.innerText = step;
            var cell = row.insertCell();
            cell.innerText = multiplier;
            var cell = row.insertCell();
            cell.innerText = multiplicant;
            var cell = row.insertCell();
            cell.innerText = product;
        }
        function ResetTable() {
            for (var i = document.getElementById("tblResults").rows.length; i > 1; i--) {
                document.getElementById("tblResults").deleteRow(i - 1);
            }
        }
        function Right(str, n) {
            if (n <= 0)
                return "";
            else if (n > String(str).length)
                return str;
            else {
                var iLen = String(str).length;
                return String(str).substring(iLen, iLen - n);
            }
        }
       
    </script>
    <style type="text/css">
        .style1
        {
            border-collapse: collapse;
            border-style: solid;
            border-width: 1px;
        }
        .style2
        {
            width: 6px;
        }
        .style4
        {
            color: #3366FF;
        }
        .style5
        {
            color: #0066FF;
        }
    </style>
</head>
<body>
    <br />
    <h3 class="style4">
         WELCOME TO MIPS MULTIPLICATION SIMULATOR</h3>
    <hr style="color: #0033CC" />
    <table>
        <tr>
            <td class="style5">
                Multiplier :
            </td>
            <td>
                <input id="txtFirst" type="text" />
            </td>
        </tr>
        <tr>
            <td class="style5">
                Multiplicant :
            </td>
            <td>
                <input id="txtSecond" type="text" />
            </td>
        </tr>
        <tr>
            <td align="center" colspan="2">
                <input id="btnMultiply" type="button" value="Multiply" onclick="ResetTable();Multiply();"
                    style="color: #3399FF" />
            </td>
        </tr>
    </table>
    <table class="style1" cellpadding="2" cellspacing="2" id="tblResults">
        <tr style="color: White">
            <td bgcolor="#3366FF">
                Iteration
            </td>
            <td bgcolor="#3366FF">
                Step
            </td>
            <td bgcolor="#3366FF">
                Multiplier
            </td>
            <td bgcolor="#3366FF" class="style2">
                Multiplicant
            </td>
            <td bgcolor="#3366FF">
                Product
            </td>
        </tr>
    </table>
</body>
</html>


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明JavaScript实现MIPS乘法模拟
喜欢 (0)
加载中……