• cocos creator基础-(三十一)超大数值计算


    处理超出正常范围的整数,使用数组分段保存数据,逐项相加,满足条件就进位,需要注意数组下标越界
    // large_number.js
    // new  构造函数来模拟一个类
    
    // 初始化的[0, 0, 0, 0, 0, 0, 9] --> 9 000 000 000 000 000 000 // [0, 999]
    function _ajust_bit_value(bit_array) {
        // 处理进位,注意越界
        for (var i = 0; i < bit_array.length; i++) {
            while (bit_array[i] >= 1000) {
                bit_array[i] -= 1000;
                if (i + 1 >= bit_array.length) {
                    this.value_set.push(0);
                }
                bit_array[i + 1] = bit_array[i + 1] + 1;
            }
        }
    }
    
    function large_number(value_array) {
        this.value_set = value_array;
        _ajust_bit_value(this.value_set);
    }
    
    
    
    // 当前的对对象 + rhs 赋值给当前这个对下岗
    large_number.prototype.large_add = function(rhs) {
        // 补齐位数
        while (this.value_set.length < rhs.value_set.length) {
            this.value_set.push(0);
        }
    
        for (var i = 0; i < rhs.value_set.length; i++) {
            this.value_set[i] = this.value_set[i] + rhs.value_set[i];
        }
    
        _ajust_bit_value(this.value_set);
    }
    
    function _format_num(num) {
        if (num < 10) {
            return "00" + num;
        } else if (num < 100) {
            return "0" + num;
        } else {
            return "" + num;
        }
    }
    
    large_number.prototype.format_string = function() {
        var str_num = "" + this.value_set[this.value_set.length - 1];
        for (var i = this.value_set.length - 2; i >= 0; i--) {
            str_num = str_num + " " + _format_num(this.value_set[i])
        }
    
        return str_num
    }
    
    // test
    /*var num1 = new large_number([0, 0, 0, 0, 0, 0, 9]);
    var num2 = new large_number([0, 0, 0, 0, 0, 0, 8]);
    num1.large_add(num2);
    var num_str = num1.format_string();
    console.log(num_str);*/
    // end
    
    module.exports = large_number;
  • 相关阅读:
    ~随笔A016~分布式技术发展
    BoF图像检索
    立体匹配-----NCC视差匹配
    对极几何与基础矩阵
    相机标定
    图像的拼接----RANSAC算法
    SIFT特征提取与检索
    Harris角点检测
    Python---图像基础处理
    PSO算法
  • 原文地址:https://www.cnblogs.com/orxx/p/10655020.html
Copyright © 2020-2023  润新知