バイナリ
バイナリ、バイナリー(Binary)とは、算術的な用法では二進法のことであるが、情報技術においては、コンピュータが直接的に処理するために2進数で表現されるデータ(バイナリデータ)のことを指して用いられる。
概要
バイナリは、コンピュータが直接的に処理することができるようにフォーマットされているため、人間が読んでもただちに意味を理解することはできない。バイナリエディタを用いると、バイナリファイルの内容を16進数で表示させ、編集することができる。
バイナリに対する用語として、プレーンテキストが用いられる[1]。テキストは、テキストエディタに読み込ませることにより、人間が読んで内容を理解できるデータである。
バイナリの例
たとえば画像ファイルや音声ファイル、圧縮されたファイルなどはバイナリである。バイナリファイルの中にはファイルの先頭にメタ情報(ヘッダ)を持っているものがある。たとえばGIFファイルは複数の画像を持つことができ、ファイルの先頭でそれぞれの画像を区別する情報が記述されている。そのようなメタ情報を持たないファイルはフラットバイナリファイルと呼ばれる。コンピュータプログラム関係では、テキストであるソースコードとの対比からコンパイルされたコード(オブジェクトファイルや実行ファイルなど。またそのような機械語(ネイティブバイナリ)に限らず、WebAssemblyやJavaなどのバイトコード類なども含む)のファイル等を指してバイナリと呼ばれることがしばしばある。プロプライエタリのソフトウェアは、バイナリの形態でさらに難読化を掛けて、販売されることが多い。
バイナリ形式でのデータの表現方法はさまざまなものがある。例えば、数値であれば0~9までの数をパターン化して記録するBCD、ゾーンビットと実際の数値、正の数か負の数かを記録する符号ビットからなるアンパック10進数(ゾーン10進数)や、実際の数値と符号ビットだけからなるパック10進数などがある。文字列の扱いとしては、ナル文字('\0')で終端する方法や、長さ(オクテット数、あるいは文字(符号点)の個数)を別に保持する、といった方式がある。前者では、'\0' を含むようなバイナリを「文字列」として扱うことができない。
注意点
バイナリフォーマットでは、エンディアンなどに互換性・移植性の上で注意が必要であり、それを避けてテキスト形式で記録することも少なくない(UNIX哲学も参照。なお浮動小数点数やループした構造の表現など、テキスト形式にも注意が必要な点は多い)。
脚注
バイナリ形式
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/19 04:55 UTC 版)
「Standard Triangulated Language」の記事における「バイナリ形式」の解説
STLにはバイナリー形式も用意されており、ASCIIにくらべファイルサイズが小さく済み、読み書きの際のエンコード/デコードがないぶん高速となる。ファイルサイズの点では、ASCII表示したときに浮動小数点の桁が多いときほど、ASCII形式との差が開き有利となる。ファイル読み書き処理の点では、SSDのような高速ストレージの転送速度を生かすためにはバイナリである必要が生じうる。 バイナリーSTLファイルは80バイトの任意の文字列で開始される(通常内容は無視される。ただし、solid から記載を始めた場合にASCII形式であると誤認識するソフトウェアが存在し、注意を要する)。次に4バイトの整数でファイルに含まれる三角形の枚数が示される。そのあとに、それぞれの三角形のデータが枚数分続くという構造になっている。終了コードはない。最後の三角形のデータがファイルの後端となる。 それぞれの三角形は12個の32ビット浮動小数点で示される。ASCII形式のSTLファイルと同様に、最初に三角形の法線ベクトル(3個)、次に三角形の各座標(3x3=9個)が X/Y/Zの順番で示される。その後2バイトの未使用データが続く。ほとんどのソフトはこの部分を無視するので値はそれぞれゼロである。 浮動小数点の表記方法はIEEE方式(IEEE 754)である。エンディアンは、仕様文書に明示されていないがリトルエンディアンである。 UINT8[80] - ヘッダー(任意の文字列)UINT32 - ファイルに含まれる三角形の数foreach triangle REAL32[3] - 法線ベクトル REAL32[3] - 座標 1 REAL32[3] - 座標 2 REAL32[3] - 座標 3 UINT16 - 未使用データend
※この「バイナリ形式」の解説は、「Standard Triangulated Language」の解説の一部です。
「バイナリ形式」を含む「Standard Triangulated Language」の記事については、「Standard Triangulated Language」の概要を参照ください。
バイナリ形式
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2009/09/15 17:42 UTC 版)
バイナリ形式でGIOPメッセージをダンプ表示すると、ヘッダが独特であるために即座に判別できる: 4文字のASCII文字: G I O P 2バイトのバージョン番号(1バイト目がメジャーバージョンで現在は 1 のみ) 1バイトのメッセージフラグ。LSBでエンディアンを示す(0 - ビッグエンディアン、1 - リトルエンディアン)。 1バイトのメッセージ型(Reply、Request、Fragmentなどを示す) 4バイトのメッセージ長(ヘッダ部は含めない) メッセージは整数タグ付きの任意のデータフラグメントの転送にも使われる。そのようなデータフラグメントはサービスコンテクストと呼ばれ、必要に応じて通信標準規格を拡張するのに使われる。例外を投げるサービスコンテキスト、文字コードを指定するサービスコンテキストなどが標準で用意されている。クライアントとサーバのインターセプターでメッセージにサービスコンテキストを付加してやり取りすることも可能である。
※この「バイナリ形式」の解説は、「GIOP」の解説の一部です。
「バイナリ形式」を含む「GIOP」の記事については、「GIOP」の概要を参照ください。
- バイナリ形式のページへのリンク