本文实例讲述了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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/26277
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我