天天看點

js的大數運算 跟經典的收藏 結合前一篇的收藏 解決工作中的一個大數進制轉換問題

把一個連結儲存下 灰唱牛X http://www.cnitblog.com/yemoo/archive/2007/10/10/34623.html 話說此人的blog山寨的csdn...

還是把内容也轉載過來吧 

大整數運算一般用于密鑰計算中。下面是作者從google過來的四個運算庫。

http://www.onicos.com/staff/iz/amuse/javascript/expert/BigInt.txt

這是比較早期的一個 JavaScript 版本的大數運算庫,由日本高手出雲所作,其中隻包含了加減乘除、模(求餘)和比較運算。

http://www.faireal.net/demo/bigint0.5/beta28/

這是另一個日本高手的作品,這個庫中包含的功能非常全,它的曆史可以參見該文。 

http://www.leemon.com/crypto/BigInt.js

這個是美國高手 Leemon Baird 的作品,所實作的功能也非常全。 

http://www.ohdave.com/rsa/BigInt.js

最後這個來自 dave 的 RSA In JavaScript 網站,這個雖然功能沒有前兩個強大,但是使用比較友善,做一般的浏覽器端加密部分已經夠用了

接下來就是我結婚第一個連結中給出的開源大數運算函數庫 寫的大數16進制轉10進制的html代碼

<html>

<head>

<mce:script src="function.js" mce_src="function.js"></mce:script>

<mce:script type="text/javascript"><!--

function $(id){

return document.getElementById(id);

}

function change(){

var c=new BigInt('1');

var t=new BigInt('0');

var ten=new BigInt('16');

var ss="0123456789abcdef";

$("putin").value=$("putin").value.toLowerCase();

for(var x=$("putin").value.length-1;x>-1;x--)

{

//t+=c,String(ss.indexOf(document.form9.DocID.value.charAt(x)));

var tempC=c.clone();

var tempIndex=new BigInt(String(ss.indexOf($("putin").value.charAt(x))));

tempC=bigint_mul(c, tempIndex);

var tempT=t.clone();

tempT=bigint_plus(t, tempC);

t=tempT;

//alert(t);

var nextC=c.clone();

nextC=bigint_mul(c,ten);

//c*=10;

c=nextC;

}

$('putout').value=t;

}

// --></mce:script>

</head>

<input type='text' id="putin"/>

<input type='text' id="putout"/>

<input type='button' value="轉 換" οnclick='change()' />

<body></body>

</html> 

可以直接運作的,試試吧,很不錯哦(自誇一下 o(∩_∩)o...)

對了 把這個進制轉換的連結也加上吧 http://www.knowsky.com/tools/ToolJinzhi.asp

繼續閱讀