处理超出正常范围的整数,使用数组分段保存数据,逐项相加,满足条件就进位,需要注意数组下标越界
// 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;

转载于:https://www.cnblogs.com/orxx/p/10655020.html

cocos creator基础-(三十一)超大数值计算相关推荐

  1. cocos creator基础-(五)cc.Component使用

    一.组件入口函数 1: onLoad: 组件加载的时候调用, 保证了你可以获取到场景中的其他节点,以及节点关联的资源数据 2: start: 也就是第一次执行 update 之前触发 3: updat ...

  2. 麒麟子Cocos Creator 3D研究笔记十一:实用Shader之单张纹理实现武器动态发光

    零.别看广告,看疗效 虽然标题叫武器发光,其实它还能实现魔法护盾.动态光柱等效果.别说话,看图! 阿子最近沉迷于学英语和写代码,可HIGH了. 一看时间,竟然已经十天没发稿了. 但这不能怪阿子,要怪就 ...

  3. cocos creator 基础教程(一) 组件的基本使用

    最近有人问我比较多入门的问题,关于cocos creator,今天就来写一篇基础的教程,不似教科书类型的教法.如果不懂的,欢迎来群咨询. 有刚入门的朋友,一直苦于不知道该怎么进行组件间的交互,或者一些 ...

  4. Cocos Creator基础教程(8)—加载预制件

    我们上篇讲了[场景切换] 并编写了LoadScene场景加组件,这次我们在场景里面创建独立的子界面或子窗口.在Cocos Creator中实现子界面的最好方案就是: 预制件. 1. 生成预制件 Coc ...

  5. Cocos Creator基础(六) cc.Component使用+Shedule定时器操作

    cc.Component使用+Shedule定时器操作 组件入口函数 cc.Component属性 组件添加查找删除 Shedule定时器操作 组件入口函数 1: onLoad: 组件加载的时候调用, ...

  6. cocos creator基础一文通(十一)--预制体 mask layout scrollView

    预制体 一.创建预制体 1.创建预制体 将配置好的节点从节点树拖到资源管理器就可以创建预制体 创建好的预制体直接拖拽至节点树就可以创建预制体实例 2.拿到预制体对象 两种方法:<1>资源动 ...

  7. Cocos creator 基础学习---Color颜色

    this.node.color = cc.color(255,255,100); this.node.opacity = 100; 也可以: this.node.color = cc.Color.GR ...

  8. cocos creator基础-碰撞检测系统

    1: 掌握碰撞检测的基本步骤; 2: 掌握开启碰撞检测和响应碰撞; 3: 完成道具拾取案例,理解group与groupIndex; 1: creator有碰撞检测系统 +物理碰撞系统,这个是两个独立的 ...

  9. cocos creator基础-创建WX开放域遇到的问题

    cocos 2.0.7 创建空白项目,做开放域测试失败 1.主域挂载WXSubContextView的节点,不能为空白节点,应该是Sprite组件,另外需要设置组件的大小和位置 转载于:https:/ ...

最新文章

  1. Python将图片转成pdf(高清)论文党用~
  2. mysql 一对多 关联一条最新的数据_不得不会的mysql锁
  3. 【转】Microsoft Graph Web应用程序极致开发体验
  4. 深入分析驴子系列(2)
  5. Mars——基于矩阵的统一分布式计算框架
  6. 【Android】论ViewHolder存在的意义
  7. 总结篇——从零搭建maven多模块springboot+mybatis项目
  8. 免费CMS系统的广告如何去掉
  9. java 实现pdf转换成图片
  10. 第二周教学课件及实验任务已发布!
  11. 「Python」利用高德地图做你想做之事
  12. 罗德里格斯公式(Rodrigues‘ rotation formula)推导
  13. IPV6、环回地址(loopback address)
  14. OpenGL-聚光灯-spot
  15. sklearn中transform和fit_transform的区别(解决中文向量化特征不一致问题)
  16. MSP432 FPU与DSP测试
  17. iOS CocoaPods1.0.0的一些基础知识
  18. git commit 命令出现“fatal: unable to auto-detect email address (got '******@.(none)')错误
  19. [人工智能学习日志]kaggle机器学习实战案例学习1
  20. 1048--黑箱子-2023/1/3

热门文章

  1. python pip 重新安装mysql_解决Ubuntu pip 安装 mysql-python包出错的问题
  2. python hook_五分钟内用Python实现GitHook
  3. vue项目没有router文件夹_Vue路由(vue-router)配置实战——动态路由,重定向,工程非根目录...
  4. 简述中断处理的6个步骤_基于SCDM软件的CFD前处理工作5个步骤
  5. java线程池示例_Java线程连接示例
  6. Telnet命令在Linux / Unix中的用法
  7. Java中的LinkedHashSet
  8. linux创建分区_在Linux中创建分区-分步指南
  9. 高级IO(一)--UNIX环境高级编程读书笔记
  10. Java面试题:Java设计模式11道常见面试题