网址跳转网站,如何做个免费的网站,个人网站 icp 代理,贵阳网站建设培训班有一定的编程经验的人都知道#xff0c;当我们对数据操作的时候#xff0c;若数据过大#xff0c;计算机将这个大数从十进制的转为二进制的#xff0c;是没有那个类型的放的了的#xff0c;因此#xff0c;我们经常将一个大数转化为字符串来操作。接下来我将演示大整数的…有一定的编程经验的人都知道当我们对数据操作的时候若数据过大计算机将这个大数从十进制的转为二进制的是没有那个类型的放的了的因此我们经常将一个大数转化为字符串来操作。接下来我将演示大整数的加法、乘法、除法操作。附不考虑负数1、大整数加法思路我们将两个数进行逆序转换然后按位进行相加将相加的结果进行与10相除商为进位余数为当前位要保留的数。//大整数加法function big_add(a,b){var min_stra.lengthvar max_stra.lengthb.length?a.split().reverse():b.split().reverse();var quotient0,remainder0;var resutl[];var temp0;for(var i0;itempparseInt(min_str[i])parseInt(max_str[i])quotient;quotientparseInt(temp/10);//进位remaindertemp%10;//余数resutl.push(remainder);}for(i;itempparseInt(max_str[i])quotient;quotienttemp/10;//进位remaindertemp%10;//余数resutl.push(remainder);if(temp10ireturn max_str.slice(i1).reverse().join()resutl.slice().reverse().join();}}return resutl.reverse().join();}2、大整数乘法//大数乘法function multi(a,b){var str1,str2,len1,len2,maxlen,result [];str1 a.split().reverse();str2 b.split().reverse();len1 str1.length;len2 str2.length;//因为要在下一步做累加如果不初始化为0result[]中的值会变为NaN//因为未初始化的数组中的值为undefinedfor(var i 0;i len1;i)for(var j 0;j len2;j)result[i j] 0;for(var i 0;i len1;i)for(var j 0;j len2;j)//根据乘法的手动计算方式在上下相同位上会有相加result[i j] parseInt(str1[i]) * parseInt(str2[j]);var n result.length;for(var k 0;k n-1;k){var temp result[k];if(temp 10){result[k] temp % 10;//JS中的/不是除法取整会取得小数所以要用Math.floor()result[k 1] parseInt(temp / 10);}}return result.reverse().join();}3、大整数除法//利用模n取余法模拟手动除法//a/b abfunction big_div(a,b){var alena.length,blenb.length;var quotient0,remainder0;var result[],temp0 ;for(var i0;itempremainder*10parseInt(a[i]);if(tempremaindertemp;result.push(0);}else{quotientparseInt(temp/b);remaindertemp%b;result.push(quotient);}}return [result.join().replace(/\b(0)/gi,),remainder];//结果返回[商余数]}