JavaScript实现MIPS乘法模拟的方法
本文实例讲述了JavaScript实现MIPS乘法模拟的方法。分享给大家供大家参考。具体如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server"> <title>MIPSMULTIPLICATIONSIMULATOR</title> <scripttype="text/javascript"> /*CREATEDBYSERKANSENDUR*/ functionStringToNumberArray(Bin){ varnumberArray=[]; for(vari=0;i<Bin.length;i++){ numberArray.push(Bin.substring(i,i+1)); } returnnumberArray; } functionConvertToDecimal(Bin){ vardecimalNumber=0; varnumberArray=StringToNumberArray(Bin); numberArray.reverse(); for(vari=0;i<numberArray.length;i++){ decimalNumber+=numberArray[i]*Math.pow(2,i); } returndecimalNumber; } functionConvertToBinary(dec){ varbits=[]; vardividend=dec; varremainder=0; while(dividend>=2){ remainder=dividend%2; bits.push(remainder); dividend=(dividend-remainder)/2; } bits.push(dividend); bits.reverse(); returnbits.join(""); } functionMultiply(){ varfirstNumber=document.getElementById("txtFirst").value; varsecondNumber=document.getElementById("txtSecond").value; varmultiplier=ConvertToBinary(firstNumber); varmultiplicant=ConvertToBinary(secondNumber); varproduct=0; varstep="Initialvalues"; variteration=0; AppendToTable(iteration,step,multiplier,multiplicant,product); multiplicationAlgoritm(multiplier,multiplicant,product,4); } functionmultiplicationAlgoritm(multiplier,multiplicant,product,counter){ if(counter>0){ variteration=5-counter; vardecProduct=ConvertToDecimal(product); vardecMultiplier=ConvertToDecimal(multiplier); vardecMultiplicant=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); } } functionAppendToTable(iteration,step,multiplier,multiplicant,product){ varrow=document.getElementById("tblResults").insertRow(); varcell=row.insertCell(); cell.innerText=iteration; varcell=row.insertCell(); cell.innerText=step; varcell=row.insertCell(); cell.innerText=multiplier; varcell=row.insertCell(); cell.innerText=multiplicant; varcell=row.insertCell(); cell.innerText=product; } functionResetTable(){ for(vari=document.getElementById("tblResults").rows.length;i>1;i--){ document.getElementById("tblResults").deleteRow(i-1); } } functionRight(str,n){ if(n<=0) return""; elseif(n>String(str).length) returnstr; else{ variLen=String(str).length; returnString(str).substring(iLen,iLen-n); } } </script> <styletype="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/> <h3class="style4"> WELCOMETOMIPSMULTIPLICATIONSIMULATOR</h3> <hrstyle="color:#0033CC"/> <table> <tr> <tdclass="style5"> Multiplier: </td> <td> <inputid="txtFirst"type="text"/> </td> </tr> <tr> <tdclass="style5"> Multiplicant: </td> <td> <inputid="txtSecond"type="text"/> </td> </tr> <tr> <tdalign="center"colspan="2"> <inputid="btnMultiply"type="button"value="Multiply" onclick="ResetTable();Multiply();" style="color:#3399FF"/> </td> </tr> </table> <tableclass="style1"cellpadding="2"cellspacing="2" id="tblResults"> <trstyle="color:White"> <tdbgcolor="#3366FF"> Iteration </td> <tdbgcolor="#3366FF"> Step </td> <tdbgcolor="#3366FF"> Multiplier </td> <tdbgcolor="#3366FF"class="style2"> Multiplicant </td> <tdbgcolor="#3366FF"> Product </td> </tr> </table> </body> </html>
希望本文所述对大家的javascript程序设计有所帮助。