当前位置: 移动技术网 > IT编程>网页制作>CSS > js大整数加法、乘法、除法解析

js大整数加法、乘法、除法解析

2018年12月09日  | 移动技术网IT编程  | 我要评论

js 大整数加法、乘法、除法

有一定的经验的人都知道,当我们对数据操作的时候,若数据过大,计算机将这个大数从十进制的转为二进制的,是没有那个类型的放的了的,因此,我们经常将一个大数转化为字符串来操作。接下来我将演示大整数的加法、乘法、除法操作。

附:不考虑负数

1、大整数加法

思路:我们将两个数进行逆序转换,然后按位进行相加,将相加的结果进行与10相除,商为进位,余数为当前位要保留的数。

//大整数加法
function big_add(a,b){
	var min_str=a.length=b.lengtha.split("").reverse():b.split("").reverse();
	var quotient=0,remainder=0;
	var resutl=[];
	var temp=0;
	for(var i=0;i

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;
//因为要在下一步做累加,如果不初始化为0,result[]中的值会变为nan
//因为未初始化的数组中的值为undefined
    for(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、大整数除法

参考:https://www.cnblogs.com/fightformylife/p/4022058.html

//利用"模n取余法"模拟手动除法
//a/b   a>b
function big_p(a,b){
	var alen=a.length,blen=b.length;
	var quotient=0,remainder=0;
	var result=[],temp=0 ;
	for(var i=0;i

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网