二进制数据详细使用

1、byte模式的二进制读取

int bs; //bs是二进制数据的句柄
bs=newbin(256);//创建一个256字节的bin数组

//写一个数据
setbin(bs,2,127);   //第二个字节写127
echo(getbin(bs,2)); //读取bin数组第二字节,显示127

freestr(bs);//释放空间

2、word模式(2byte)的二进制读取

int bs;//bs是二进制数据的句柄
bs=newbin(256);//创建一个256字节的bin数组

//写一个数据
setbin2(bs,2,65534);   //第二个字节写65534
echo(getbin2(bs,2)); //读取bin数组第二字节,显示65534

freestr(bs);//释放空间

备注:
- getbin 和getbin2 可以混用 - bin2的位置的概念0号位置对应0字节;1号位置对应2字节;2号位置对应4字节

3、二进制数据的初始化

int bs;
bs=newbin(16);
defbin(bs,0,"00 01 00 02 00 03 00 0A 00 0B 00 10 00 12 00 14");

echo(getbin(bs,1)); //显示1
echo(getbin2(bs,1)); //显示512

4、有关getv的语句

5、控件内使用

int bs; //控件属性
void create(){
    bs=newbin(256);
}
void show(){
    //getbin();
}

控件在初始化create的时候,newbin申请了空间,由于create只执行一次,因此不会导致空间不足

但是如果按照下面的代码:

void show(){
    int bs;
    bs=newbin(256);
    ......
}

这样是有问题,由于show函数是频繁调用的,因此不停的newbin申请内存,会导致内存不够而在运行一段时间后系统崩溃;

需要按以下修改:

void show(){
    int bs;
    bs=newbin(256);
    ......
    freestr(bs);
}