Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回JS中数组的大整数操作_Javascript_Libraries_Biginteger - Fatal编程技术网

Javascript 返回JS中数组的大整数操作

Javascript 返回JS中数组的大整数操作,javascript,libraries,biginteger,Javascript,Libraries,Biginteger,我使用这个js库来处理大整数:问题是当我执行一些像mult(A,powMod(B,e,N))这样的操作时,其中A,B,e和N是大整数,我得到的是一个数组而不是一个大整数。。。然后当我想用这个结果进行运算时,我不能把它当作一个大整数。如何将此数组转换为一个大整数 你知道一些javascript的大整数库有powMod和InverMod方法吗 数组是bigInt,可以使用库中提供的函数对其进行操作。如果希望能够以人类可读的格式查看它,请使用bigInt2str函数 <script> va

我使用这个js库来处理大整数:问题是当我执行一些像mult(A,powMod(B,e,N))这样的操作时,其中A,B,e和N是大整数,我得到的是一个数组而不是一个大整数。。。然后当我想用这个结果进行运算时,我不能把它当作一个大整数。如何将此数组转换为一个大整数


你知道一些javascript的大整数库有powMod和InverMod方法吗

数组是bigInt,可以使用库中提供的函数对其进行操作。如果希望能够以人类可读的格式查看它,请使用bigInt2str函数

<script>
var A = randBigInt(100,1);
var B = randBigInt(100,1);
var e = randBigInt(100,1);
var N = randBigInt(100,1);
var mult, x;
console.log('A =  ' + A); // A =  4145,12807,14234,10758,3424,5601,901,0
console.log('B =  ' + B); // B =  8476,8451,3441,15572,3002,10012,1000,0
console.log('e =  ' + e); // e =  3792,11382,3645,6320,9155,11401,789,0
console.log('N =  ' + N); // N =  5401,1700,6760,6147,11285,5907,837,0
mult = mult(A, powMod(B, e, N)); // the operation works
console.log('mult =  ' + mult); // mult =  24610,5611,13200,16143,988,8897,7049,13093,30523,11847,495,29557,22316,2,0
x = add(mult,N); // the operation works
console.log('x =  ' + x); // x =  30011,7311,19960,22290,12273,14804,7886,13093,30523,11847,495,29557,22316,2,0

console.log('mult as string, base 10: ' + bigInt2str(mult,10)); // 291979269279106415301425615088143991732473941997421745796392
console.log('x as string, base 10: ' + bigInt2str(x,10));       // 291979269279106415301425615088815343267840898748372641292627
</script>

var A=randBigInt(100,1);
var B=randBigInt(100,1);
var e=randBigInt(100,1);
var N=randBigInt(100,1);
var-mult,x;
console.log('A='+A);//A=414512807142341075834245601901,0
console.log('B='+B);//B=847684513411557230010121000,0
console.log('e='+e);//e=37921138236456320915511401789,0
console.log('N='+N);//N=540117006606147112855907837,0
mult=mult(A,powMod(B,e,N));//手术成功了
console.log('mult='+mult);//mult=2461056111132001614398889770491309330523118474952955722316,2,0
x=加(多,N);//手术成功了
console.log('x='+x);//x=30011731119962290122731480478861309330523118474952955722316,2,0
log('mult as string,base 10:'+bigInt2str(mult,10));//291979269279106415301425615088143991732473941997421745796392
log('x作为字符串,以10为底:'+bigInt2str(x,10));//291979269279106415301425615088815343267840898748372641292627

这个问题被认为是离题的,因为您要求我们查找库或其他非现场资源。关于它们返回数组的原因,请引用您链接的代码的注释—“bigInt是一个整数数组,以bpe位的块存储值,little endian(buff[0]是最不重要的词)。负的bigint存储在二的补码中。几乎所有函数都将bigint视为非负的。少数将它们视为二的补码的函数在注释中这样说。”这似乎是一个足够合理的解释。