JavaScript实现MIPS乘法模拟的方法
内容摘要
本文实例讲述了JavaScript实现MIPS乘法模拟的方法。分享给大家供大家参考。具体如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.
文章正文
本文实例讲述了JavaScript实现MIPS乘法模拟的方法。分享给大家供大家参考。具体如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | <!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程序设计有所帮助。
代码注释