回答:
バイナリエディタは、ファイルを編集するバイナリファイル。
バイナリファイルは、テキストファイルではありませんコンピュータファイルです。「バイナリファイル」という用語は、「非テキストファイル」を意味する用語としてよく使用されます[通常]バイトシーケンスと見なされます。...通常、バイナリファイルには、テキスト文字以外のものとして解釈されるバイトが含まれています。
六角エディタはの一種であるバイナリエディタデータで表現された進数形式。
六角エディタ(またはバイナリファイルエディタまたはバイトエディタが)コンピュータファイルを構成する基本的なバイナリデータの操作を可能にするコンピュータプログラムの一種です。「hex」という名前は「hexadecimal」に由来しています。16を基数とする数値の標準的な表現です。
用語は難しいです。さまざまな人々があらゆる種類の異なる名前を持っています。
この例では、と思わ進のに対し、「バイナリエディタ」内の各バイトの値の従来の人間が読める表現を指し、バイナリ「バイナリエディタ」で、あなたが実際にバイトのファイルを編集しているという概念を指し、高レベルのテキストエンコーディングなどを考慮せずに、レイヤー(およびコンピューターはバイナリでバイトを保存)高レベルのテキスト形式では容易に表現できないファイルは、同じ理由で「バイナリファイル」または「バイナリ」と呼ばれることを思い出してください。
どちらも技術的に間違っていません。それらは、さまざまな角度からネーミングの問題に直面するだけです。しかし、個人的には、「バイナリエディター」がバランスをとって混乱していることに同意する傾向があります。
バイナリエディターの表示(バイナリ)
00000000 | 11111011 11111011 11111011 11111011 11110101 11111011 11111011 11111011
00001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00010000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00011000 | 11110101 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00100000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00101000 | 11111011 11111011 11101111 11111011 11111011 11111011 11111011 11111011
00110000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
00111000 | 11111011 11111011 11111011 11101111 11111011 11111011 11111011 11111011
01000000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01001000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01010000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01011000 | 11101111 11111011 11111011 11111011 11111011 11111011 11111011 11111011
01100000 | 11111011 11111011 11111011 11111011 11111011 11101111 11111011 11111011
01101000 | 11111011 11111011 11111011 11111011 11111011 11111011 11111011 11111011
バイナリエディターの表示(16進数)
00 | fb fb fb fb f5 fb fb fb fb fb fb fb fb fb fb fb
10 | fb fb fb fb fb fb fb fb f5 fb fb fb fb fb fb fb
20 | fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb fb
30 | fb fb fb fb fb fb fb fb fb fb fb ef fb fb fb fb
40 | fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
50 | ef fb fb fb fb fb fb fb ef fb fb fb fb fb fb fb
60 | fb fb fb fb fb ef fb fb fb fb fb fb fb fb fb fb
バイナリエディタでバイトをバイナリで処理できるのは事実ですが、ご覧のとおり、基数2は小さすぎてコンパクトな数字を表示できません。
一般的に言えば、バイナリエディタの「バイナリ」はベース2を参照せず、実際には「テキストエディタ」の反意語です。
違いは、テキストエディタがテキストを表示するように設計されているため、非印刷文字、改行、制御文字、無効なutf-8コード単位などを安全に処理する必要がないことです。
ファイルを開いてすぐに保存するだけで、ファイルを変更できます(エディターの内部変換、失敗により)。
逆に、バイナリエディターは、データにセマンティックを与えようとせず、ユーザーがバイト/ビット/ワードのストリームとして安全に処理できるようにします。
完璧なバイナリエディターは、考えられるすべてのバイナリ形式を認識して編集できるようにしますが、誰もが独自のバイナリ形式を作成でき、頻繁に変更されるため、すべての形式をサポートしようとするのは無益です。
エディターができる最善のことは、バイト自体を表示することです。すでに説明したように、16進数のプロパティにより、16進数が非常に便利です。
また、経験豊富なユーザーは、ビンを読んでいるときにビンを精神的に16進数に変換できます。
16進数で書き込まれたバイトからビットを設定/取得することは、実際には、ビンで書き込まれたバイトよりも労力はかかりません。
正直に言うと、16進数はバイナリよりも読みやすいとわかりました。
概要:
16進エディタを使用して、バイナリコンテンツを16進形式で表示し、これらの16進数を変更できるようにして、バイナリファイルを直接編集します。
ノート:
Hex Editorsでは、データを解釈しようとする他のプログラムの代わりに、ファイルの生データの内容を編集できます。
バイナリエディターまたはバイトエディターとも呼ばれる16進エディター。
バイナリエディターまたはバイトエディターを呼び出すことは、エディターが16進数を変更し、2進数またはバイトを変更しないため、実際には正しくありません(もちろん、ファイルを保存すると、基になる2進数とバイトが変更されます)
なぜ16進数でバイナリを編集するのですか?
データを16進形式で表示し、16進値を変更することにより、バイナリファイルを直接表示または編集/変更する方が簡単です。
2進数を表す便利な方法の1つは、16進数を使用することです。
歴史的に、コンピューターはアセンブリー言語でプログラムされていました。アセンブリー言語では、プロセッサー命令とメタステートメント(ディレクティブ、疑似命令、疑似操作としてさまざまに知られています)、コメント、データを使用してコードが記述されていました。
コードは、アセンブラーを使用してバイナリに変換されます。その後、バイナリコードをプロセスにロードして実行できます。
ソースコードがなければ、プログラムをバイナリではなく16進数で表示するエディターを使用して、プログラムを直接変更する方が簡単です。
バイナリコードは、16進数に変換されたときに人間がより読みやすくなります。
たとえば、どのペアの数字を覚えたり、他の人に読みやすくしたりしますか?
10110000 01100001
または
B0 61
各16進数は4つの2進数(ビット)を表します。1つの16進数はニブルを表し、オクテットまたはバイトの半分(8ビット)です。
たとえば、バイト値の範囲は0〜255(10進数)ですが、00〜FFの範囲の2つの16進数としてより便利に表現できます。
16進数は、コンピューターのメモリアドレスを表すためにもよく使用されます。
いくつかのプログラミング言語とオペレーティングシステムの規則に従って、2種類のファイルがあります。
テキストエディターはテキストファイルを開くことができますが、バイナリエディターは処理するファイルの種類に制限がありません。
多くの場合、バイナリエディターは16進数でデータを表現して入力できるので、単なる便利です(多くの場合、ASCII文字も表示および置換できます)。純粋なバイナリでデータを表示するだけでは、データが読みにくくなります。
人気のあるバイナリエディタの名前はHexEditです。
バイナリエディタと16進エディタの両方を適切に考慮します。
16進数でデータを表示せず、テキストのみを表示するオプションもあります
現在、ほとんどのコンピューターのファイルは、8ビットバイトです。これは通常、ファイルを直接編集するときに使用する抽象化です。
もちろん、実際には個々のデータを編集する機会がありますが、頻繁に編集することはありません。ビット7の設定のような共通のビットレベルの操作はとにかく進で行うのは簡単です- 1000年0000 BASE2 = 80 base16を進値が80の下にあるので、もし、BASE2のビット7明確であり、8つの追加するbase16することは、それを設定します。
16進数がこのタイプのアクティビティにより強く関連付けられている他の理由:
既知の値を視覚的にスキャンする場合、16進数値は認識しやすいです。たとえば、20 base16 = 32はASCIIスペースですが、同じ値0010 0000 base2は、他のダンプされた値のフラッドの中では、それほど認識しにくいです。
定期的にこれを実際に使用する必要があった古いシステムでは、画面スペースが制限されていた可能性があります(40列など)。Apple IIe ROMモニターは素晴らしい例です。メモリを16進数で40カラムの統合ビデオにダンプできます。80x24の画面で値をバイナリに展開すると、すぐに部屋を使い果たしてしまいます。これらの古いシステムでは、入力されたASCIIを正しい値に変換するルーチンを作成するのも簡単です。重要なのは、4KのRAMが大量のメモリと見なされ、システムにROMが搭載されているだけの場合があります。
「hex」という言葉は、音が良く、短く、入力しやすいです。
人々がヘックスを使用しているとき、彼らは通常、バイナリで考えており、簡略表記としてヘックスを使用しています。
16は2の累乗です。8は2の累乗でもあります。そのため、16と8はバイナリの簡略表記に使用されています。バイナリと2の累乗の基数との間の手動変換は簡単です。ターゲットベースで示されたサイズでビットをグループ化し、対応する数字を使用します。
8進数のベース8は、多くの初期のコンピューターで人気があったため、Unixにはod
8進数のダンプコマンドがあります。各8進数は、一度に3ビットを表します。しかし、8ビットバイトに基づいたマシンにとっては不便でした。
16進数、16進数の略、16進数は、1桁あたり4ビットを表します。これは、最近でははるかに一般的に使用される表現です。
あなたの質問に文字通り答えます。
まず、少し説明します。もちろん、16進エディターです。Hexが手段6と小数は手段10を、そう進の手段16。Biは2を意味します。あなたが言ったように、これらはベース16とベース2の2つの異なるベースです。つまり、16進数を定義するには16個のプレースホルダー要素が必要で、2進数を定義するには2個の要素が必要です。
あなたは言いました、
If you actually search for "binary editor" on Google, you get hex editors.
そして今、あなたの質問のために、
Why is that?
これはリテラル部分です。Googleは、ほとんどの人が検索の満足のいく結果だと思ったものを返します。彼らの機械学習アルゴリズムは、文字列「editor」のコンテキスト内で、文字列「hexadecimal」および「hex」を「binary」に関連付けます。ほとんどのユーザーは、「バイナリ」「エディター」を検索した後、「16進数」「エディター」に満足しているため、それが得られます。それ以外の意味はありません。
What is the connection?
文字通り、Googleが何の意味も返さないため、何もありません。Googleは2進数と16進数の違いを知りません。検索エンジンの使用方法を集計するだけです。
16進数と2進数の実際の接続を求めていて、上の説明に戻ると、1つの16進数要素は16の可能性または4ビットをエンコードしますが、バイナリ要素は2の可能性または1ビットをエンコードします。1バイトで8ビットの情報をエンコードするには、2つの16進数要素または8つのバイナリ要素が必要です。したがって、バイナリまたは16進エディタは、異なるビューでのみ同じデータを表すため、交換可能に使用できることがわかります。
個々のビットを変更できるため、「バイナリ」と呼ばれます。
UIは通常、より便利であるため、デフォルトでは16進数で機能します。たとえばffffe0007d13e650
、画面上のスペースがより小さいため1111111111111111111000000000000001111101000100111110011001010000
です。(これは、作成された例ではなく、デバッグの問題からの実際のアドレスです。)16進コード内のASCIIやUnicode文字なども「見る」方が簡単です。
ただし、それらのほとんどは、本当に必要な場合にバイナリビットの表示に切り替わります。
(なぜ私たちはパークウェイを運転するのにドライブウェイを駐車するのですか?それは単なる言葉です。英語はしばしば奇妙です。)