Binary

背景

    • 二进制数据对象序列.
    • 二进制格式.
    • 存储简单或复合数据类型的统一序列.

Import 与 Export

  • Import["file","Binary"] 以字节列表的形式导入任意二进制文件.
  • Export["file",list,"Binary"] 导出字节大小的整数列表至一个二进制文件.
  • 当导入或导出原始二进制文件时,必须指定 "Binary" 格式.
  • Import["file",{"Binary",elem}]Import["file",elem ] 从一个二进制文件中导入指定的参数.
  • Import["file",{"Binary",{elem1,elem2,}}] 导入多个参数.
  • Export["file",expr,{"Binary",elem}]expr 作为指定参数 elem 创建一个二进制文件.
  • 请到以下参考页面了解完整的基本信息:
  • Import, Export从文件导入或导出到文件
    CloudImport, CloudExport从云对象导入或导出到云对象
    ImportString, ExportString从字符串导入或导出到字符串
    ImportByteArray, ExportByteArray从字节数组导入或导出到字节数组

导入参数

  • Import 的通用参数:
  • "Elements" 该文件可用的参数和选项列表
    "Summary"文件摘要
    "Rules"所有可用参数的规则列表
  • 表示数据的参数:
  • "Bit"0和1
    "Byte"范围在0到255的整数
    "Character8"8位字符
    "Character16"16位字符
    "Integer8"8位有符号整数
    "Integer16"16位有符号整数
    "Integer24"24位有符号整数
    "Integer32"32位有符号整数
    "Integer64"64位有符号整数
    "Integer128"128位有符号整数
    "UnsignedInteger8"8位无符号整数
    "UnsignedInteger16"16位无符号整数
    "UnsignedInteger24"24位无符号整数
    "UnsignedInteger32"32位无符号整数
    "UnsignedInteger64"64位无符号整数
    "UnsignedInteger128"128位无符号整数
    "Real32"IEEE 单精度数字
    "Real64"IEEE 双精度数字
    "Real128"IEEE 四精度数字
    "Complex64"IEEE 单精度复数
    "Complex128"IEEE 双精度复数
    "Complex256"IEEE 四精度复数
  • 默认情况下,ImportExport 使用 "Byte" 参数.
  • 对于任何数据表示参数 typeImport["file",type] 可用作 Import["file",{"Binary",type}] 的简写.
  • 对于 IEEE "infinity",实数的 Import 返回 Infinity,对于 IEEE "notanumber",返回 Indeterminate.
  • 如果导入的文件的尺寸不是数据尺寸的倍数,结尾字节被忽略.

选项

  • 通用选项:
  • ByteOrdering$ByteOrdering使用何种字节排序
  • Import 选项:
  • "HeaderBytes"0在文件的开头跳过多少字节
  • 表示数据的选项:
  • "DataFormat"Automatic以基本数据类型列表{type1,type2,}指定一个复合对象
  • 当设置为"DataFormat"->{type1,type2,}ImportExport 以形式{type1,type2,}的对象序列诠释一个原始二进制文件.
  • Import["file","Binary","DataFormat"->{"Character8","Integer32"}] 以8位字符和32位整数的交替序列读取 file.

范例

基本范例  (2)

把字符字串转换成字节值整数的列表:

当导入基本数据类型时,可以省略格式指标"Binary"

把整数和实数对导出到8位整数和双精度实数的二进制序列:

把以上的输出转换回数值数组:

验证每个数值对被转换成个字节: