バイナリ形式とは? わかりやすく解説

バイナリ

(バイナリ形式 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/08/14 16:05 UTC 版)

ウィキペディアFavicon16進ダンプ。先頭列は行番号、「*」は同じ内容の行の反復を示している。1行あたり16バイトであり、318バイトのデータである。

バイナリファイル(英:binary file)とは、テキストファイルではないコンピュータファイルである。

情報技術においては、コンピュータが直接的に処理するために2進数で表現されるデータのことを指すが、一般的にテキスト形式以外のデータ形式を指す言葉として用いられる。バイナリデータバイナリコードバイナリ形式などとも呼ばれる。対義語はテキストファイル。

日本においては、単に「バイナリ」と略称で呼ばれることも多い。この場合、文脈によっては、ファイル形式ではなく、算術的な用法の二進法のことを指すことがあるため注意が必要である。

概要

現代のコンピュータは、扱う情報を全てビット(二進数)形式で管理している。つまり、厳密にはコンピュータ上で扱うファイルは、テキストファイルを含め、全て「バイナリファイル」である。しかし、データの種類を区別する便宜上、バイナリファイルとテキストファイルとは対比して用いられる。

バイナリファイルは、コンピュータが直接的に処理することを前提に設計されている。バイナリエディタを用いて、ファイルの内容を16進数などで表示させることはできるが、その内容を人間がただちに理解することはできない。

一方、テキストファイルは、人間が直接内容を読むことを前提に設計されている。このフォーマットでは、二進数で構成されたデータは文字コードに基づいてエンコード・デコードされ、人間が読める文字列として表示される。この処理はテキストエディタなどでリアルタイムで行われ、人間は直接内容を読んで理解することができ、更にそのまま編集を加えることができる。

このテキストファイルの使用は非常に便利かつ特徴的であったため、その他のファイルと区別するための言葉として「バイナリファイル」という名称が使われるようになった。そういう意味では言葉としての「バイナリファイル」は一種のレトロニムと言える。

バイナリの例

たとえば画像ファイルや音声ファイル圧縮されたファイルなどはバイナリが使われることが多い。テキストはバイナリと比べてデータ量が増大しやすく、また誤差をもともと含む浮動小数点数を10進数の文字列として変換すると正確に表現できず、ファイルを読み込む際に完全に復元できないことがあるからである。例えば、PNM画像形式におけるP1/P2/P3のようにASCIIテキストが使われる場合もあるが、バイナリのP4/P5/P6と比べてデータ量が増えてしまう。バイナリであれば8ビット(1オクテット、≒1バイト)で済むような0から255までの範囲のデータであっても、テキストであれば10進数表記の可変長文字列として表現する場合は最大3文字必要となり、さらに隣接データとの境界を示す区切り文字も含めると4文字必要となる。16進数表記の固定長文字列として表現する場合でも2文字必要となるので、仮に8ビット単位でエンコーディングしても16ビット(2オクテット、≒2バイト)必要になってしまう。

バイナリファイルの中にはファイルの先頭にメタ情報(ヘッダ)を持っているものがある。たとえばGIFファイルは複数の画像を持つことができ、ファイルの先頭でそれぞれの画像を区別する情報が記述されている。そのようなメタ情報を持たないファイルはフラットバイナリファイルと呼ばれる。コンピュータプログラム関係では、テキストであるソースコードとの対比からコンパイルされたコードのファイル等[注釈 1]を指してバイナリと呼ばれることがしばしばある。プロプライエタリのソフトウェアはバイナリの形態で提供されるが、特に商用ソフトウェアは他者による解析(リバースエンジニアリング)や改変・改竄・クラッキングを防ぐために、リソースファイルやメディアファイル、ライセンスファイルなどの一部がさらに難読化や暗号化を施した状態で提供されることが多い。

バイナリ形式でのデータの表現方法はさまざまなものがある。例えば、数値であれば0から9までの数をパターン化して記録するBCD、ゾーンビットと実際の数値、正の数か負の数かを記録する符号ビットからなるアンパック10進数(ゾーン10進数)や、実際の数値と符号ビットだけからなるパック10進数などがある。文字列の扱いとしては、ヌル文字(C系言語のリテラル表記では'\0')で終端する方法(ヌル終端文字列、ゼロ終端文字列)や、長さ[注釈 2]を別に保持する、といった方式がある。前者では、'\0' を含むようなバイナリを「文字列」として扱うことができない。

C言語におけるファイルストリームのように、処理系によってはテキストモードとバイナリモードで改行文字の扱いが異なる場合もある[1]C++のストリームはデフォルトでテキストモードだが、バイナリモードを指定することもできる[2]

注意点

バイナリフォーマットでは、エンディアンなどに互換性移植性の上で注意が必要であり、それを避けてテキスト形式で記録することも少なくない(UNIX哲学も参照)。Java.NETのような標準化された環境に代表されるように、一般的には符号付き整数の内部表現に2の補数を採用し、またIEEE 754準拠の浮動小数点数を採用することが規定されているシステムやプラットフォームが多いものの、そうでない環境とのデータ交換にはバイナリは不向きである。なお浮動小数点数の誤差やループした構造の表現[要説明]など、テキスト形式にも注意が必要な点は多い。

2バイト以上の数値型や、固定長の配列によるヌル終端文字列などをメンバーに持つ構造体をバイナリとしてそのままシリアライズすることもあるが、処理系やCPUアーキテクチャによってデフォルトのパディングが異なるので、メモリレイアウトを規定するアライメントをソースコード上で明示的に指定する必要がある。

脚注

注釈

  1. ^ オブジェクトファイル実行ファイルなど。またそのような機械語(ネイティブバイナリ)に限らず、WebAssemblyJavaなどのバイトコード類なども含む。
  2. ^ オクテット数、あるいは文字(符号点)の個数。

出典

関連項目


バイナリ形式

出典: フリー百科事典『ウィキペディア(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」の概要を参照ください。

ウィキペディア小見出し辞書の「バイナリ形式」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「バイナリ形式」の関連用語

バイナリ形式のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



バイナリ形式のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのバイナリ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのStandard Triangulated Language (改訂履歴)、GIOP (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS