Binary

Background & Context

    • Sequence of binary data objects.
    • Binary format.
    • Stores a uniform sequence of simple or compound data types.

Import & Export

  • Import["file","Binary"] imports any binary file as a list of bytes.
  • Export["file",list,"Binary"] exports a list of byte-size integers to a binary file.
  • The format "Binary" must be specified when importing or exporting raw binary files.
  • Import["file",{"Binary",elem}] or Import["file",elem ] imports the specified element from a binary file.
  • Import["file",{"Binary",{elem1,elem2,}}] imports multiple elements.
  • Export["file",expr,{"Binary",elem}] creates a binary file by treating expr as specifying element elem.
  • See the following reference pages for full general information:
  • Import, Exportimport from or export to a file
    CloudImport, CloudExportimport from or export to a cloud object
    ImportString, ExportStringimport from or export to a string
    ImportByteArray, ExportByteArrayimport from or export to a byte array

Import Elements

  • General Import elements:
  • "Elements" list of elements and options available in this file
    "Summary"summary of the file
    "Rules"list of rules for all available elements
  • Data representation elements:
  • "Bit"zeros and ones
    "Byte"integers in the range 0 to 255
    "Character8"8bit characters
    "Character16"16bit characters
    "Integer8"8-bit signed integers
    "Integer16"16-bit signed integers
    "Integer24"24-bit signed integers
    "Integer32"32-bit signed integers
    "Integer64"64-bit signed integers
    "Integer128"128-bit signed integers
    "UnsignedInteger8"8-bit unsigned integers
    "UnsignedInteger16"16-bit unsigned integers
    "UnsignedInteger24"24-bit unsigned integers
    "UnsignedInteger32"32-bit unsigned integers
    "UnsignedInteger64"64-bit unsigned integers
    "UnsignedInteger128"128-bit unsigned integers
    "Real32"IEEE singleprecision numbers
    "Real64"IEEE doubleprecision numbers
    "Real128"IEEE quadprecision numbers
    "Complex64"IEEE singleprecision complex numbers
    "Complex128"IEEE doubleprecision complex numbers
    "Complex256"IEEE quadprecision complex numbers
  • By default, Import and Export use the "Byte" element.
  • For any data representation element type, Import["file",type] can be used as a shorthand for Import["file",{"Binary",type}].
  • Import of real numbers returns Infinity for IEEE "infinity", and Indeterminate for IEEE "notanumber".
  • Trailing bytes are ignored if the size of the imported file is not a multiple of the data size.

Options

  • General option:
  • ByteOrdering$ByteOrderingwhat byte ordering to use
  • Import option:
  • "HeaderBytes"0how many bytes to skip at the beginning of the file
  • Data representation option:
  • "DataFormat"Automaticspecifies a compound object as a list of basic data types {type1,type2,}
  • With a setting "DataFormat"->{type1,type2,}, Import and Export interpret a raw binary file as a sequence of objects of the form {type1,type2,}.
  • Import["file","Binary","DataFormat"->{"Character8","Integer32"}] reads file as an alternating sequence of 8-bit characters and 32-bit integers.

Examples

Basic Examples  (2)

Convert a string of characters to a list of byte-valued integers:

The format specification "Binary" can be omitted when importing elementary data types:

Export pairs of integers and reals to a binary sequence of 8-bit integers and double-precision reals:

Convert the previous output back to an array of numbers:

Verify that each number pair was converted to bytes: