天天看点

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

继续阅读