JavaScript實(shí)現(xiàn)MIPS乘法模擬的方法
本文實(shí)例講述了JavaScript實(shí)現(xiàn)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>
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JavaScript實(shí)現(xiàn)九九乘法表的簡(jiǎn)單實(shí)例
- 基于javascript實(shí)現(xiàn)九九乘法表
- JavaScript實(shí)現(xiàn)99乘法表及隔行變色實(shí)例代碼
- JS實(shí)現(xiàn)上下左右對(duì)稱的九九乘法表
- JavaScript實(shí)現(xiàn)梯形乘法表的方法
- javascript(js)的小數(shù)點(diǎn)乘法除法問(wèn)題詳解
- 解決JS中乘法的浮點(diǎn)錯(cuò)誤的方法
- jsp/javascript打印九九乘法表代碼
- javascript和jquery分別實(shí)現(xiàn)的九九乘法表代碼
- JavaScript 字符串乘法
- javascript 小數(shù)乘法結(jié)果錯(cuò)誤的處理方法
相關(guān)文章
微信小程序?qū)崿F(xiàn)同時(shí)上傳多張圖片
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)同時(shí)上傳多張圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02JS無(wú)限樹(shù)狀列表實(shí)現(xiàn)代碼
本人水平有限,這么個(gè)東東想了好幾天才弄出來(lái)個(gè)半成品,還有一些問(wèn)題沒(méi)有解決,先放上來(lái)存著備忘,也望高手指點(diǎn)一二。2011-01-015秒后跳轉(zhuǎn)效果(setInterval/SetTimeOut)
實(shí)現(xiàn)5秒后自動(dòng)跳轉(zhuǎn)效果有兩種方式setInterval與SetTimeOut,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下2013-05-05Javascript document.referrer判斷訪客來(lái)源網(wǎng)址
用簡(jiǎn)單幾行的javascript,就可抓到使用的來(lái)源,以及作出一些防范的措施。2009-12-12js實(shí)現(xiàn)驗(yàn)證碼干擾(靜態(tài))
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)驗(yàn)證碼干擾,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02MC Dialog js彈出層 完美兼容多瀏覽器(5.6更新)
MC.Dialog 是由肖毅(YesSky) 開(kāi)發(fā)一款界面絢麗美觀 操作簡(jiǎn)單易用的一款js彈出層 MC.Dialog 是經(jīng)過(guò)嚴(yán)格了測(cè)試的 兼容目前ie7+ 以及其他非ie核心的瀏覽器 完美模擬瀏覽器自帶對(duì)話框功能2010-05-05