首页 > 编程 > JavaScript > 正文

JavaScript实现MIPS乘法模拟的方法

2019-11-20 12:38:30
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表