バイナリコードのように、単語helloになります。 バイナリコードのロシア語のアルファベット。 統一されたアルファベットのバイナリコーディング。 バイトコード。 2進数を理解する
ある意味での「バイナリ」という用語は、2つの部分、コンポーネントで構成されています。 したがって、バイナリコードは、黒または白、明または暗、導体または絶縁体など、2つのシンボリック状態のみで構成されるコードです。 デジタル技術のバイナリコードは、0と1として指定できる2つの文字の組み合わせの形式でデータ(数字、単語など)を表す方法です。BC文字または単位はビットと呼ばれます。 BCを使用する理由の1つは、任意の媒体での情報蓄積の単純さと信頼性であり、その物理的状態の2つだけの組み合わせの形で、たとえば、光束の変化または一定の形で光コードディスクからの読み取り。
情報のエンコードにはさまざまな可能性があります。
バイナリコード
デジタル技術において、データ(数字、単語など)を2文字の組み合わせとして表現する方法。0と1として指定できます。DCの文字または単位はビットと呼ばれます。
DCを使用する理由の1つは、任意の媒体での情報蓄積の単純さと信頼性であり、その物理的状態の2つだけの組み合わせの形で、たとえば、磁束の変化または一定の形で磁気記録媒体の特定のセル。
2進数で表現できる最大数は、使用されるビット数によって異なります。 数値を表す組み合わせのビット数について。 たとえば、0から7までの数値を表現するには、3ビットまたは3ビットのコードがあれば十分です:
数値 | バイナリコード |
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
このことから、3ビットコードで7より大きい数の場合、0と1のコードの組み合わせはこれ以上ないことがわかります。
数から物理量に移り、上記のステートメントをさらに定式化します。 一般的な見解:バイナリコードで表現できる任意の量(温度、電圧、電流など)の値mの最大数は、m = 2nとしてnを使用するビット数によって異なります。 検討した例のようにn = 3の場合、先行0を含む8つの値を取得します。
バイナリコードはマルチステップコードです。 これは、ある位置(値)から別の位置(値)に移動するときに、複数のビットが同時に変更される可能性があることを意味します。 たとえば、 バイナリコード= 011。バイナリコードの数値4 = 100。したがって、3から4に渡すと、3ビットすべてが同時に反対の状態に変わります。 コードディスクからそのようなコードを読み取ると、コードディスクの作成における必然的な偏差(許容誤差)のために、各トラックからの情報の変更が同時に発生することは決してないという事実につながります。 これは、順番に、ある番号から別の番号への移行中に、誤った情報が短時間表示されるという事実につながります。 したがって、前述の数値3から数値4への遷移では、たとえば、遷移中の最上位ビットが他のビットよりも少し早く値を変更した場合、数値7の短期出力が発生する可能性が非常に高くなります。 これを回避するために、いわゆるワンステップコード、たとえばいわゆるグレイコードが使用されます。
グレイコード
グレイコードは、いわゆるワンステップコードです。 ある数値から別の数値に移動するとき、情報のすべてのビットのうちの1つだけが常に変化します。 ある数値から別の数値に移動するときにメカニカルコードディスクから情報を読み取る際のエラーは、ある位置から別の位置への遷移が時間的にわずかにシフトするという事実につながるだけですが、完全に誤った値の発行はある位置から別の位置に移動するときの角度位置は完全に除外されます..。
グレイコードの利点は、情報をミラーリングできることでもあります。 したがって、最上位ビットを反転することにより、カウントの方向を変更するだけで、軸の実際の(物理的な)回転方向に調整できます。 このようにカウント方向を変更することは、いわゆる「補数」入力を操作することで簡単に変更できます。 したがって、戻り値は、軸の同じ物理的な回転方向に対して上昇または下降する可能性があります。
グレイコードで表現された情報は純粋にコード化されているため、実際のキャリアではありません。 数値情報さらに処理する前に、まず標準のバイナリに変換する必要があります。 これは、幸いなことに、ソフトウェアとハードウェアの両方で「排他的論理和」(XOR)の論理要素のチェーンを使用して簡単に実装できるコードコンバーター(グレーバイナリデコーダー)を使用して行われます。
0から15の範囲の10進数を2進数およびグレイコードに一致させる
バイナリエンコーディング | グレイコード |
||||
10進コード |
バイナリ値 | 16。 意味 | 10進コード | バイナリ値 | 16。 意味 |
0 | 0000 | 0時間 | 0 | 0000 | 0時間 |
1 | 0001 | 1時間 | 1 | 0001 | 1時間 |
2 | 0010 | 2時間 | 3 | 0011 | 3時間 |
3 | 0011 | 3時間 | 2 | 0010 | 2時間 |
4 | 0100 | 4時間 | 6 | 0110 | 6時間 |
5 | 0101 | 5時間 | 7 | 0111 | 7時間 |
6 | 0110 | 6時間 | 5 | 0101 | 5時間 |
7 | 0111 | 7時間 | 4 | 0100 | 4時間 |
8 | 1000 | 8時間 | 12 | 1100 | Ch |
9 | 1001 | 9時間 | 13 | 1101 | Dh |
10 | 1010 | ああ | 15 | 1111 | Fh |
11 | 1011 | Bh | 14 | 1110 | ええ |
12 | 1100 | Ch | 10 | 1010 | ああ |
13 | 1101 | Dh | 11 | 1011 | Bh |
14 | 1110 | ええ | 9 | 1001 | 9時間 |
15 | 1111 | Fh | 8 | 1000 | 8時間 |
グレイコードを使い慣れたバイナリコードに変換するには、 シンプルなスキーム以下に示すように、インバーターと「排他的論理和」ゲートを使用します。
灰色-超過コード
通常のワンステップグレイコードは、2の累乗で表すことができる解像度に適しています。通常のグレイコードから他の解像度を実装する必要がある場合は、その中央のセクションを切り取って使用します。 したがって、「ワンステップ」コードは保持されます。 ただし、数値範囲はゼロから始まるのではなく、特定の値によってオフセットされます。 情報処理の際、生成された信号から元の解像度と低下した解像度の差の半分が差し引かれます。 360などの解像度? 角度を表現するために、この方法で実装されることがよくあります。 したがって、512ステップに等しい9ビットのグレイコードを両側で76ステップトリミングすると、360°になります。
コンピュータは人間のように単語や数字を理解しません。 モダン ソフトウェアエンドユーザーはそれを無視できますが、最低レベルでは、コンピューターはバイナリ電気信号で動作します。 州は2つしかない:電流があるかどうか。 複雑なデータを「理解」するには、コンピューターでデータをバイナリ形式でエンコードする必要があります。
バイナリシステムは、1と0の2桁に基づいており、コンピュータが理解できるオンとオフの状態に対応しています。 あなたはおそらく10進法に精通しているでしょう。 0から9までの10桁を使用し、次の順序に移動して2桁の数字を形成し、次の各順序の桁は前の桁の10倍になります。 バイナリシステムも同様で、各桁は前の桁の2倍の大きさです。
バイナリで数える
2進数では、最初の桁は10進数の1です。 2桁目は2、3桁目は4、4桁目は8というように、毎回2倍になります。 これらの値をすべて追加すると、10進数が得られます。
1111(2進数)= 8 + 4 + 2 + 1 = 15(10進数)
アカウンティング0は、4つのバイナリビットに対して16の可能な値を提供します。 8ビットを移動すると、256個の可能な値が得られます。 10進数の4桁で10,000の可能な値が得られるため、これを表すにはさらに多くのスペースが必要です。 もちろん、バイナリコードはより多くのスペースを占有しますが、コンピュータは10進数よりもバイナリをはるかによく理解します。 また、論理処理などの一部の場合、2進数は10進数よりも優れています。
プログラミングで使用される別の基本的なシステムがあると言わなければなりません: 16進数..。 コンピューターは16進形式では機能しませんが、プログラマーはコードを作成するときに、16進形式を使用して人間が読める形式でバイナリアドレスを表します。 これは、16進数の2桁がバイト全体を表すことができるためです。つまり、2進数の8桁が置き換えられます。 16進法では、0〜9の数字とA〜Fの文字を使用して、さらに6桁の数字を指定します。
コンピューターがバイナリを使用する理由
簡単な答えは次のとおりです。 ハードウェアと物理法則。 コンピューター上のすべての文字は電気信号であり、コンピューティングの初期の頃は、電気信号の測定ははるかに困難でした。 負の電荷で表される「オン」状態と、正の電荷で表される「オフ」状態のみを区別する方が理にかなっています。
なぜ「オフ」が正の電荷で表されるのかわからない人にとって、これは電子が負の電荷を持ち、より多くの電子が負の電荷でより多くの電流を持っているという事実によるものです。
したがって、初期の部屋サイズのコンピュータが使用されていました バイナリシステムを構築するために、そして彼らはより古く、より厄介なハードウェアを使用しましたが、同じ基本原則に基づいて動作しました。 現代のコンピューターいわゆるを使用してください トランジスタ バイナリコードで計算を実行します。
典型的なトランジスタの図を次に示します。
基本的に、ゲートに電流がある場合、電流がソースからドレインに流れることができます。 これにより、バイナリキーが形成されます。 メーカーは、これらのトランジスタを信じられないほど小さくすることができます-5ナノメートルまたはDNAの2本のストランドのサイズまで。 これは彼らがどのように機能するかです 最新のプロセッサ、そしてそれらでさえ、オン状態とオフ状態を区別する問題に苦しむ可能性があります(これは非現実的な分子サイズによるものですが、 量子力学の奇妙さ).
なぜバイナリシステムだけなのか
だからあなたは考えているかもしれません。 もう1つ番号を付けてみませんか?」 これは部分的にはコンピューターを作る伝統によるものですが、別の数字を追加することは、オフまたはオンだけでなく、強調表示される現在の別の状態があることを意味します。
ここでの問題は、複数の電圧レベルを使用する場合、それらを使用して簡単に計算する方法が必要であり、これを実行できる最新のハードウェアは、バイナリ計算の代わりとして実行できないことです。 たとえば、いわゆる トリプルコンピューター 1950年代に開発されましたが、開発はそこで止まりました。 3値論理 バイナリよりも効率的ですが、バイナリトランジスタの効果的な代替品がまだないか、少なくともバイナリほどスケールが小さいトランジスタはありません。
トリプルロジックを使用できない理由は、トランジスタがコンピュータにどのように接続されているか、そしてそれらが数学的な計算にどのように使用されているかにあります。 トランジスタは2つの入力に関する情報を受け取り、演算を実行して、結果を1つの出力に返します。
したがって、バイナリ数学は他の何よりもコンピュータ上で簡単です。 バイナリロジックは簡単にバイナリシステムに変換され、TrueとFalseはオンとオフの状態に対応します。
バイナリロジックで動作するバイナリ真理値表には、基本的な演算ごとに4つの可能な出力があります。 ただし、トリプルゲートは3つの入口を使用するため、トリプル真理値表は9つ以上になります。 バイナリシステムには16の可能な演算子(2 ^ 2 ^ 2)がありますが、ターナリシステムには19683(3 ^ 3 ^ 3)があります。 3進法の方が効率的ですが、指数関数的に複雑になるため、スケーリングが問題になります。
知るか?将来的には、バイナリロジックが小型化の問題に直面したため、三叉神経コンピュータが登場する可能性は十分にあります。 今のところ、世界はバイナリモードで動作し続けます。
私はテキストをバイナリコードに、またはその逆に変換するようなツールを作ることに決めました、そのようなサービスがあります、しかしそれらは通常ラテンアルファベットで動作します、私のものは 翻訳者は Unicodeエンコーディング UTF-8形式キリル文字を2バイトでエンコードします。 この瞬間トランスレータの機能は、2バイトエンコーディングに制限されています。 漢字は放送できませんが、この厄介な誤解を正していきます。
テキストをバイナリに変換するには左側のウィンドウにテキストを入力し、右側のウィンドウでTEXT-> BINを押すと、そのバイナリ表現が表示されます。
バイナリコードをテキストに変換するには右側のウィンドウにコードを入力し、左側のウィンドウでBIN-> TEXTを押すと、その記号表現が表示されます。
もしも バイナリコードのテキストへの翻訳またはその逆、それはうまくいきませんでした-あなたのデータの正確さをチェックしてください!
アップデート!
タイプテキストの逆変換が利用可能になりました。
通常のビューに。 これを行うには、[0をスペースに置き換え、1を█に置き換えます]チェックボックスをオンにします。 次に、テキストを右側のウィンドウに貼り付けます:「バイナリ表現のテキスト」そしてその下のボタン「BIN-> TEXT」をクリックします。
そのようなテキストをコピーするときは、注意する必要があります。 最初または最後にスペースを簡単に失う可能性があります。 たとえば、上の行は次のようになります。
██ █ █ ███████ █ ██ ██ █ █ ███ ██ █ █ ██ █ ██ █ █ ██ █ ███ █ ██ █ █ ██ █ █ ███ ██ █ █ ███ ██ █ ██
と赤い背景に:
██ █ █ ███████ █ ██ ██ █ █ ███ ██ █ █ ██ █ ██ █ █ ██ █ ███ █ ██ █ █ ██ █ █ ███ ██ █ █ ███ ██ █ ██
最後にいくつのスペースを失う可能性があるかわかりますか?
テキストが書かれる文字のセットは呼ばれます アルファベット.
アルファベットの文字数は彼のものです パワー.
情報量を決定するための公式: N = 2 b,
ここで、Nはアルファベットのカーディナリティ(文字数)です。
b-ビット数(文字の情報の重み)。
256文字の容量のアルファベットは、必要なほとんどすべての文字を収容できます。 このアルファベットは呼ばれます 十分な。
なぜなら 256 = 2 8の場合、1文字の重みは8ビットです。
8ビットユニットは名前が付けられました 1バイト:
1バイト= 8ビット。
コンピュータテキストの各文字のバイナリコードは、1バイトのメモリを使用します。
テキスト情報はコンピュータのメモリでどのように表されますか?
バイトはメモリのアドレス可能な最小部分であり、したがってプロセッサは各文字に個別にアクセスしてテキスト処理を実行できるため、文字のバイトエンコーディングの利便性は明らかです。 一方、256文字は、さまざまな文字情報を表すのに十分な数です。
ここで、各文字にどのような8ビットのバイナリコードを割り当てるのかという疑問が生じます。
これが条件付きの問題であることは明らかです。多くのエンコード方法を考え出すことができます。
コンピュータのアルファベットのすべての文字には0から255までの番号が付けられています。各番号は00000000から11111111までの8桁の2進数コードに対応します。このコードは単に2進数システムの文字の順序番号です。
コンピュータのアルファベットのすべての文字にシリアル番号が割り当てられているテーブルは、エンコーディングテーブルと呼ばれます。
にとって 他の種類コンピュータはさまざまなコーディングテーブルを使用します。
PCの国際規格がテーブルになりました ASCII(ASCIIを読んでください)(情報交換のためのアメリカ標準コード)。
ASCIIテーブルは2つの部分に分かれています。
国際規格は、表の前半にすぎません。 からの数字の記号 0 (00000000)、最大 127 (01111111).
ASCIIエンコーディングテーブル構造
シリアルナンバー |
コード |
シンボル |
0 - 31 |
00000000 - 00011111 |
0から31までの数字を持つ記号は、通常、制御文字と呼ばれます。 |
32 - 127 |
00100000 - 01111111 |
表の標準部分(英語)。 これには小文字と 大文字ラテンアルファベット、10進数、句読点、あらゆる種類の角かっこ、商取引およびその他の記号。 |
128 - 255 |
10000000 - 11111111 |
表の代替部分(ロシア語)。 |
ASCIIテーブルの前半
エンコーディングテーブルでは、文字(大文字と小文字)がアルファベット順に並べられ、数字が値の昇順で並べられていることに注意してください。 文字の配置における辞書式順序のこの遵守は、アルファベットの順次コーディングの原則と呼ばれます。
ロシア語のアルファベットの文字については、シーケンシャルコーディングの原則も守られています。
ASCIIテーブルの後半
残念ながら、現在5つの異なるキリル文字エンコーディング(KOI8-R、Windows、MS-DOS、Macintosh、ISO)があります。 このため、あるコンピューターから別のコンピューターへのロシア語のテキストの転送で問題が発生することがよくあります。 ソフトウェアシステム別に。
年代順に、コンピューターでロシア語の文字をエンコードするための最初の標準の1つは、KOI8(「情報交換コード、8ビット」)でした。 このエンコーディングは、70年代にES EVMシリーズのコンピューターで使用され、80年代半ばから最初のロシア化バージョンで使用され始めました。 オペレーティング・システム UNIX。
MS DOSオペレーティングシステムが主流だった90年代の初めから、CP866エンコーディングは残っています(「CP」は「コードページ」の略です)。
Mac OSを実行しているAppleコンピュータは、独自のMacエンコーディングを使用しています。
さらに、国際標準化機構(ISO)は、ロシア語の標準としてISO8859-5と呼ばれる別のエンコーディングを承認しました。
現在最も一般的なのは Microsoftエンコーディング Windows、CP1251と略されます。
90年代後半以降、文字コードの標準化の問題は、と呼ばれる新しい国際標準の導入によって解決されてきました。 Unicode..。 これは16ビットエンコーディングです。 各文字に2バイトのメモリを割り当てます。 もちろん、これにより使用されるメモリの量は2倍になります。 しかし、そのような コードテーブル最大65536文字を含めることができます。 完全仕様 Unicode標準世界のすべての既存の、絶滅した、人工的に作成されたアルファベットだけでなく、多くの数学、音楽、化学、その他の記号が含まれています。
ASCIIテーブルを使用して、コンピュータのメモリで単語がどのように表示されるかを想像してみましょう。
コンピュータメモリ内の単語の内部表現
別のコンピューターから受信したロシア語のアルファベットの文字で構成されるテキストが読み取れない場合があります。モニター画面に何らかの「ジブリッシュ」が表示されます。 これは、コンピューターがロシア語の文字の異なるエンコードを使用しているという事実によるものです。
バイナリコードのデコードは、機械語から通常の言語に変換するために使用されます。 オンラインツールはすばやく機能しますが、手動で行うのは簡単です。
バイナリまたはバイナリコードは、デジタル形式で情報を送信するために使用されます。 1と0などの2文字のみのセットを使用すると、テキスト、数字、画像など、あらゆる情報を暗号化できます。
バイナリコードで暗号化する方法
シンボルをバイナリコードに手動で変換するために、各シンボルに0と1の形式のバイナリコードが割り当てられたテーブルが使用されます。 最も一般的なエンコーディングシステムはASCIIで、8ビットコード表記を使用します。
基本テーブルには、ラテンアルファベット、数字、およびいくつかの記号のバイナリコードが含まれています。
キリル文字と追加文字のバイナリ解釈が拡張テーブルに追加されました。
バイナリコードからテキストまたは数字に変換するには、テーブルから目的のコードを選択するだけで十分です。 しかし、もちろん、そのような作業を手動で行うには長い時間がかかります。 さらに、間違いは避けられません。 コンピューターは復号化をはるかに高速に処理します。 また、画面のテキストを入力しても、現時点ではテキストがバイナリコードに変換されているとは思いません。
2進数を10進数に変換する
数値を2進数システムから10進数に手動で変換するには、非常に単純なアルゴリズムを使用できます。
- 極端なものから始めて、2進数の下 右桁、数字の2を段階的に書きます。
- 2の累乗に、2進数の対応する桁(1または0)を掛けます。
- 結果の値を追加します。
アルゴリズムが紙の上でどのように見えるかは次のとおりです。
バイナリ復号化のためのオンラインサービス
それでも復号化されたバイナリコードを確認する必要がある場合、または逆にテキストをバイナリ形式に翻訳する必要がある場合、最も簡単な方法は、この目的のために設計されたオンラインサービスを使用することです。
オンライン翻訳では通常2つのウィンドウを使用すると、テキストの両方のバージョンを通常の形式とバイナリ形式でほぼ同時に表示できます。 そして、復号化は両方向で実行されます。 テキストの入力は、単純なコピーと貼り付けによって行われます。