boolean类型,占,一个字节,8位
double 类型,占,占八哥字节,8*8=64位。
不够位数的补0,例如,3.1415926,把其转化成二进制的形式然后在其数组中存储,然后按8位为一个字节,在ByteArray中占一个位置(注意),
byteArr.writeDouble(Math.PI);
trace(byteArr[1]); // 64
trace(byteArr[2]); // 9
trace(byteArr[3]); // 33
trace(byteArr[4]); // 251
trace(byteArr[5]); // 84
trace(byteArr[6]); // 68
trace(byteArr[7]); // 45
trace(byteArr[8]); // 24
其中输出的结果中,例如64,就是其中排列中8位的十六进制
下面是,api中,关于此类的一个简单的实例:
package {
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.errors.EOFError;
public class ByteArrayExample extends Sprite {
public function ByteArrayExample() {
var byteArr:ByteArray = new ByteArray();
byteArr.writeBoolean(false);
trace(byteArr.length); // 1
trace(byteArr[0]); // 0
byteArr.writeDouble(Math.PI);
trace(byteArr.length); // 9
trace(byteArr[0]); // 0
trace(byteArr[1]); // 64
trace(byteArr[2]); // 9
trace(byteArr[3]); // 33
trace(byteArr[4]); // 251
trace(byteArr[5]); // 84
trace(byteArr[6]); // 68
trace(byteArr[7]); // 45
trace(byteArr[8]); // 24
byteArr.position = 0;
try {
trace(byteArr.readBoolean() == false); // true
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
try {
trace(byteArr.readDouble()); // 3.141592653589793
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
try {
trace(byteArr.readDouble());
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
在AS3中另外一个比较涉及底层操作的类是二进制类ByteArray。这个类管理了一系列二进制数据。可以达到在字节层上的控制。二进制数据在网络传输时虽然在工作效率下有所下降,但却是最节省网络带宽的传输方式。
一,简介:
ByteArray输入flash.util包,直接继承自Object对象。具有6个公共属性和33个公共方法。其中大部分是不同数据类型的写入和读取write&read。...
npm安装bytearray.js 凉亭安装bytearray.js
ByteArray.js是Actionscript 3的ByteArray的实现,但是仅使用纯Javascript。 该库支持Actionscript 3的大部分功能。一个小目标是通过支持密钥库使Actionscript 3开发人员切换到较新的平台。 缓冲区的默认长度是4096字节,但是如果您想使用更多缓冲区,那就继续吧。
AMF(Adobe的操作消息格式)
ByteArray.js同时支持AMF0和AMF3。 它可以序列化和反序列化您的数据。 数据与ByteArray字节流共享,从而允许您通过调用ByteArray的构造函数来直接进行处理,这非常方便。
该库还支持IEEE 754值,以防您需要使某些对象浮点数。
压缩和解压缩
ByteArray.js可以满足您的要求! 如果
在传参数的时候,若
使用C
ByteArray,就会报下面这错误:
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”
类中声明)
这时候只需要将C
ByteArray改为C
ByteArray* 即可,具体原因,目前还没有研究。
c = num % 256 # 低位
d = num / 256 # 高位
print(a, b, c, d, type(a), type(b), type(c), type(d))
num_arr =
bytearray([a, b])
C/C++中分配内存主要使用的就是mallc和new,但是如果随意申请内存,就无法做到自动回收。所以在Obotcha中,使用了一个ByteArray的类来管理内存。申请一段内存可以使用直接调用createByteArray(int size)接口来获取。ByteArray构造函数内部处理如下:
_ByteArray::_ByteArray(int length) {
buff ...
ByteArray()
创建一个表示填充的字节数组的 ByteArray 实例,以便使用此类中的方法和属性来优化数据存储和数据流。 ByteArray
compress(algorithm:String):void
压缩字节数组。 ByteArray
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。 Object
isProto...
ByteArray是字节数组的实现,顾名思义,该数组的元素大小的一个字节,不过类似js的Uint16Array,Uint32Array数组一样,我们可以把多个元素看做一个,把多个字节合并成一个元素看待。下面我们看一下实现。
class ByteArray: public Array {
public:
// 按照一个元素一个字节的方式存取
inline byte get(int index);
inline void set(int index, byte value);
// 按照一个元