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要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "Bit"ゼロと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"ビット符号なし文字
    "UnsignedInteger128"128ビット符号なし文字
    "Real32"IEEE単精度数
    "Real64"IEEE倍精度数
    "Real128"IEEE4倍精度数
    "Complex64"IEEE単精度複素数
    "Complex128"IEEE倍精度複素数
    "Complex256"IEEE4倍精度複素数
  • ImportExportはデフォルトで"Byte"要素を使う.
  • どのようなデータ表現要素type についても,Import["file",type]Import["file",{"Binary",type}]の省略表現として使用できる.
  • 実数のImportでは,IEEEの「無限大」に対してはInfinityが,IEEEの「数値でないもの」に対しては Indeterminateが返される.
  • インポートされたファイルのサイズがデータサイズの倍数でない場合,余りのバイトは省略される.

オプション

  • 一般的なオプション:
  • ByteOrdering$ByteOrdering使用するバイト順
  • Importオプション:
  • "HeaderBytes"0ファイルの最初で省くバイト数
  • データ表現要素:
  • "DataFormat"Automatic混合オブジェクトを基本データ型のリスト{type1,type2,}として指定する
  • "DataFormat"->{type1,type2,}と設定すると,ImportExportは生バイナリファイルを{type1,type2,}という形のオブジェクトの列として解釈する.
  • Import["file","Binary","DataFormat"->{"Character8","Integer32"}]file を8ビット文字と32ビット文字の繰返しの列として読み込む.

例題

  (2)

文字列をバイト値の整数のリストに変換する:

形式指定"Binary" は基本的なデータ型のインポートには省略できる:

整数と次数のペアを8ビット整数と倍精度実数のバイナリの列にエキスポートする:

前出力を数の配列に戻す:

各ペアがバイトに変換されたことを検証する: