vanCopper bio photo

vanCopper

Try Your Best.

Email Github

原创博文,转载请声明

为框架添加了一套新的与C++通讯的数据协议,其中和C++的大爷们对于他们的64位数字(unsigned long long)读写的问题纠结了很久。真心觉得“学好C++走遍天下都不怕啊”

AS里Number最大支持53整数位,所以AS里面是没有办法表示超过53位的整数的,所以这里的读写64数字只是在数字大小不超过53位的情况下可用。

从字节流读出64数字:

var long_h:uint;

var long_l:uint;

//C++传过来的数据包是打过pack的 所以字节流里 低位在前

long_l = byteArray.readUnsignedInt();

long_h = byteArray.readUnsignedInt();

var num:Number = long_h*4294967296 + long_l;// 4294967296 = 2^32

写入:

var num:Number = 23212232;

var long_l:uint = uint(num);

var long_h:uint = (num - long_l)/4294967296;

byteArray.writeUnsignedInt(long_l);

byteArray.writeUnsignedInt(long_h);

扫码分享该文