Javascript 返回JS中数组的大整数操作
我使用这个js库来处理大整数:问题是当我执行一些像mult(A,powMod(B,e,N))这样的操作时,其中A,B,e和N是大整数,我得到的是一个数组而不是一个大整数。。。然后当我想用这个结果进行运算时,我不能把它当作一个大整数。如何将此数组转换为一个大整数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
你知道一些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视为非负的。少数将它们视为二的补码的函数在注释中这样说。”这似乎是一个足够合理的解释。