当前位置: 首页 > news >正文

房地产网站方案海南创作什么网站

房地产网站方案,海南创作什么网站,西宁网站制作费用是多少,企业开发小程序公司这次给大家带来protobuf.js 与 Long.js的使用详解#xff0c;是急用protobuf.js 与 Long.js的注意事项有哪些#xff0c;下面就是实战案例#xff0c;一起来看一下。protobuf.js的结构和webpack的加载之后的结构很相似。这样的模块化组合是个不错的结构方式。1个是适应了不同…这次给大家带来protobuf.js 与 Long.js的使用详解是急用protobuf.js 与 Long.js的注意事项有哪些下面就是实战案例一起来看一下。protobuf.js的结构和webpack的加载之后的结构很相似。这样的模块化组合是个不错的结构方式。1个是适应了不同的加载方式2个模块直接很独立。webpack的功能更全一点。但如果自己封装js库这样够用了。而且模块对外统一接口 module.exports。这和node很像。(function(global, undefined) { use strict;(function prelude(modules, cache, entries) { function $require(name) { var $module cache[name]; //没有就去加载if (!$module)modules[name][0].call($module cache[name] { exports: {} }, $require, $module, $module.exports); return $module.exports;} //曝光成全局var proto global.proto $require(entries[0]); // AMDif (typeof define function define.amd) {define([long], function(Long) { if (Long Long.isLong) {proto.util.Long Long;proto.configure();}}); return proto;} //CommonJSif (typeof module object module module.exports)module.exports proto;}) //传参 ({ 1: [function (require, module, exports) { function first() {console.log(first);}module.exports first;}, {}], 2: [function(require, module, exports) { function second() {console.log(second);}module.exports second;}], 3: [function (require, module, exports) { var proto {};proto.first require(1);proto.second require(2);proto.build full;module.exports proto;}]}, {}, [3]);})(typeof windowobjectwindow||typeof selfobjectself||this)在处理超过16位的整形就得使用Long.js了。 主要是fromString和toString。function fromString(str, unsigned, radix) { if (str.length 0) throw Error(empty string); if (str NaN || str Infinity || str Infinity || str -Infinity) return ZERO; if (typeof unsigned number) { // For goog.math.long compatibilityradix unsigned,unsigned false;} else {unsigned !!unsigned;}radix radix || 10; if (radix 2 || 36 radix) throw RangeError(radix); var p; if ((p str.indexOf(-)) 0) throw Error(interior hyphen); else if (p 0) { return fromString(str.substring(1), unsigned, radix).neg();} // Do several (8) digits each time through the loop, so as to// minimize the calls to the very expensive emulated p.var radixToPower fromNumber(pow_dbl(radix, 8)); var result ZERO; for (var i 0; i str.length; i 8) { var size Math.min(8, str.length - i), value parseInt(str.substring(i, i size), radix); if (size 8) { var power fromNumber(pow_dbl(radix, size));result result.mul(power).add(fromNumber(value));} else { result result.mul(radixToPower);result result.add(fromNumber(value));}}result.unsigned unsigned; return result;}fromstring的思路是把字符串8位一个截取。然后转成Long型(高位地位符号位) 加起来。最后是一个Long型。 4294967296 是2的32次方。每次操作之前都会有一个基数的操作 mul(radixToPower)或者mul(power)这两者都是保证result的位数是正确的。比如{low:123} 和{low:1} 相加之前先要让{low:123}乘以10得到{low:1230}再与{low:1}进行位操作。因为第一个是高位不能直接相加。function fromBits(lowBits, highBits, unsigned) { return new Long(lowBits, highBits, unsigned);}fromBits 即转为Long对象。value%4294967296 得到低位。/得到高位。结果通过位移合并起来。mul是bit的乘法add是bit的加法。 原理是讲一个64位的拆成四段。分别16位。this.low左移16位 就得到 low的32-17位是啥。 然后和addend对象的同位相加最后的合并是通过|运算。位移之后再还原确实很巧妙。一时看上去都不大理解。LongPrototype.add function add(addend) { if (!isLong(addend))addend fromValue(addend); // pide each number into 4 chunks of 16 bits, and then sum the chunks.var a48 this.high 16; var a32 this.high 0xFFFF; var a16 this.low 16; var a00 this.low 0xFFFF; var b48 addend.high 16; var b32 addend.high 0xFFFF; var b16 addend.low 16; var b00 addend.low 0xFFFF; var c48 0, c32 0, c16 0, c00 0;c00 a00 b00;c16 c00 16;c00 0xFFFF;c16 a16 b16;c32 c16 16;c16 0xFFFF;c32 a32 b32;c48 c32 16;c32 0xFFFF;c48 a48 b48;c48 0xFFFF; return fromBits((c16 16) | c00, (c48 16) | c32, this.unsigned);};和有什么区别。toStringLongPrototype.toString function toString(radix) {radix radix || 10; if (radix 2 || 36 radix) throw RangeError(radix); if (this.isZero()) return 0; if (this.isNegative()) { // Unsigned Longs are never negativeif (this.eq(MIN_VALUE)) { // We need to change the Long value before it can be negated, so we remove// the bottom-most digit in this base and then recurse to do the rest.var radixLong fromNumber(radix),p this.p(radixLong),rem1 p.mul(radixLong).sub(this); return p.toString(radix) rem1.toInt().toString(radix);} elsereturn - this.neg().toString(radix);} // Do several (6) digits each time through the loop, so as to// minimize the calls to the very expensive emulated p.var radixToPower fromNumber(pow_dbl(radix, 6), this.unsigned),rem this; var result ; while (true) { var remp rem.p(radixToPower),intval rem.sub(remp.mul(radixToPower)).toInt() 0,digits intval.toString(radix);rem remp; if (rem.isZero()) return digits result; else { while (digits.length 6)digits 0 digits;result digits result;}}};也是sub之后拼出来的。也就是fromstring的反向操作。相信看了本文案例你已经掌握了方法更多精彩请关注php中文网其它相关文章推荐阅读
http://wiki.neutronadmin.com/news/279846/

相关文章:

  • 哪个网站微博做的最好网站做seo安全吗
  • 广州设计网站培训班智能建站系统下载
  • 多个网站做计划全网seo优化电话
  • 在対网站做可能的来自内部和外部的攻击透明网站模板
  • 福州 网站建设企业网站效果图
  • 个人网站是啥网站做推广页需要什么软件
  • 学做投资网站深圳外贸建站
  • 自己做视频网站做网站文字编辑工作好不好
  • 网站维护流程图上海杨浦网站建设
  • 网站开发设置用户发送wordpress
  • 网站运营思路网站建设和风险评估
  • 智能制造公司厦门seo优化
  • 婚纱摄影网站html模板网站建设与优化
  • 个人可以做导航网站吗谷歌推广培训
  • 重庆市企业网站建设免费播放电视剧的app有哪些
  • 个人备案后做淘客网站网站源码搭建教程
  • 网站没备案能访问吗成立一家公司的基本流程
  • seo网站排名优化公司wordpress循环所有文章
  • 网站建设设计技术方案模板下载温州网站制作优化
  • 私募基金公司网站建设网站建设的相应技术
  • 洛阳建设网站的公司网站图片是用什么软件做的
  • 国外有没有网站是做潘多拉的中牟网络推广外包
  • 网站搭建视频怎样查看网站服务商
  • 做外贸找生意上哪个网站有经验的郑州网站建设
  • 建设网站熊掌号快速网站优化服务
  • 购物网站开发项目意义wordpress app下载模板
  • 百度云网站开发网页美工设计百度
  • 中山建站服务建一个网站花多少钱
  • 一些常用的网站单位网站开发费用进什么科目
  • 平面设计素材网站排行榜前十名网站图片怎样做seo优化