数据类型的二进制表示形式
READ和
WRITE语句允许读和写Gambas数据类型的二进制表示形式。
| 数据类型 | 大小 | 表示形式 | 
|---|
| Boolean | 1 byte | 0对应 FALSE,255对应 TRUE. | 
| Byte | 1 byte | 二进制的数据值。 | 
| Short | 2 bytes | 二进制的数据值。 | 
| Integer | 4 bytes | 二进制的数据值。 | 
| Long | 8 bytes | 二进制的数据值。 | 
| Pointer | 4 bytes in 32 bits 8 bytes in 64 bits
 | 二进制的指针值。 | 
| Single | 4 bytes | 二进制的数据值。 | 
| Float | 8 bytes | 二进制的数据值。 | 
| Date | 8 bytes | 日期和时间为两个四字节整数。 | 
| String | 可变长度 | 字符串长度首先写入,作为可变长度整数: 
  然后写入字符串内容。
如果字符串长度小于或等于127个字符,则写入一个字节。
如果字符串长度在128到16383个字符之间,则写入两个字节。
如果字符串长度在16384到1073741824个字符之间,则写入四个字节。
目前无法写入更长的字符串。
 | 
| NULL | 1 byte | Null values and null strings are written as a single 0byte. | 
| Variant | Variable | 在写入variant值时,一个用于指示数据类型的字节会在之前写入。
值本身则根据上述类型写入。 | 
| Array | 2 bytes + array length + array contents | 
  
一个字节,其值为65。
一个字节,其值表示数组内容的数据类型。
数组长度,写起来像字符串长度。
每个数组元素的值。
 | 
| Collection | 1 byte + collection length + collection contents | 
  
如果集合键区分大小写,则值为67的一个字节;如果集合键不区分大小写则值为99。
集合长度,写起来像字符串长度。
对于集合中的每个项目:
  
 | 
| Structure | Contents size | 
  
结构内容是按声明顺序递归编写的。
嵌入式数组项按顺序写入。与普通数组相反,不写入任何大小或类型的标头。
 | 
| Serializable objects | 1 byte + class name (optional) + object contents | 
  
一个字节,其值是 79 或 111。
如果初始字节是111,那么类名就是这样写的:
  
由类的 _write 方法写对象的内容。
 | 
二进制数据的字节序就是流的字节序。
See also