章 – 4
ナンバーシステム
序章
データリカバリプログラミングやその他のディスクトラブルシューティングプログラミングでは、さまざまなタイプの番号システムを同時に処理して、単一のタスクを実行したり、拡張MBRの特定の場所を計算するなどの非常に小さな作業を実行したりすることが非常に一般的です。 CHS(シリンダー、ヘッド、セクター)の数とこれらの場所は、操作全体を通してプログラマーをガイドします。
おそらく、初心者のプログラマーのほとんどは、アセンブリ言語ベースのシステムレベルのプログラミングを学習しようとするとき、および2進数と16進数のシステムを使用する必要があるときに、さまざまなタイプの数値システムを相互に変換するときに問題や混乱に遭遇します。
この章では、2進数、10進数、16進数の記数法、およびビット、ニブル、バイト、ワード、ダブルワードなどの変換などの2進データの編成、および記数法の他の多くの関連トピックを含む多くの重要な概念について説明します。 。
最近のコンピュータシステムのほとんどは、10進法を使用して数値を表現していませんが、通常、2進法または2の補数法を使用しています。
プログラミングで一般的に使用される4つの基数があります。 2進数、8進数、10進数、16進数. ただし、ほとんどの場合、2進数、10進数、16進数のシステムを使用します。これらの番号システムは、基本番号に従って区別されています。
すべての記数法には、独自の基本番号と表現記号があります。次の表に、これら4つの数値を示しました。
Name of Number System |
Base Number |
Symbol Used for Representation |
Binary |
2 |
B |
Octal |
8 |
Q or O |
Decimal |
10 |
D or None |
Hexadecimal |
16 |
H |
10進数システム
10進数システムは基数10を使用し、0から9までの数字が含まれています。混乱しないでください。これは、私たちが日常生活で物事を計算するために使用する一般的な記数法です。各位置の累乗加重値は次のようになります。
このように、10進数218があり、それを上記の方法で表現したい場合、数値218は次の方法で表現されます。
2 * 102 + 1 * 101 + 8 * 100
= 2 * 100 + 1 * 10 + 8 * 1
= 200 + 10 + 8
= 218
ここで、小数の10進数の例を見てみましょう。番号821.128を考えてみましょう。小数点の左側に表示される各桁は、0から9までの値を表し、10の累乗は、数値の位置(0から始まる)で表されます。
小数点の右側に表示される数字は、10の負の累乗の増加の0から9倍の間の値を表します。方法を見てみましょう:
8 * 102 + 2 * 101 + 1 * 100 + 1 * 10-1 + 2 * 10-2 + 8 * 10-3
= 8 * 100 + 2 * 10 + 1 * 1 + 1 * 0.1 + 2 * 0.01 + 8 * 0.001
= 800 + 20 + 1 + 0.1 + 0.02 + 0.008
= 821.128
2進数システム
今日、最近のコンピュータシステムのほとんどはバイナリロジックを使用して動作します。コンピューターは、次のことを示す2つの電圧レベルを使用して値を表します。 0と1を使用してOFFまたはONのいずれか. たとえば、電圧0Vは通常ロジック0で表され、+ 3.3Vまたは+ 5V電圧はロジック1で表されます。したがって、2つのレベルを使用すると、正確に2つの異なる値を表すことができます。これらは任意の2つの異なる値にすることができますが、慣例により、値0と1を使用します。
コンピュータが使用する論理レベルと2進数システムで使用される2桁の間には対応関係があるため、コンピュータが2進数システムを採用しているのは当然のことです。
2進数システムは10進数システムと同じように機能しますが、2進数システムは2進数を使用し、0と1の数字のみを含み、他の数字を使用すると、その数字は無効な2進数になります。
各位置の加重値は次のように表されます。
次の表は、10進数に対する2進数の表現を示しています。
Decimal Number |
Binary Number Representation |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
10 |
1010 |
11 |
1011 |
12 |
1100 |
13 |
1101 |
14 |
1110 |
15 |
1111 |
通常、10進数の場合、大きな数字を読みやすくするために、10進数の3桁ごとにコンマで区切ります。たとえば、840349823よりも840,349,823という数字を読む方がはるかに簡単です。
同じ考えからインスピレーションを得て、2進数についても同様の規則があるため、2進数が読みやすくなりますが、2進数の場合は、左側の最下位桁から4桁ごとにスペースを追加します。小数点。
例えば バイナリ値が1010011001101011の場合、1010 0110 01101011と書き込まれます。
2進数から10進数への変換
2進数を10進数に変換するには、各桁にその加重位置を掛け、各加重値を合計します。たとえば、バイナリ値10110101は次のことを表します。
1*27 + 0*26 + 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20
= 1 * 128 + 0 * 64 + 1 * 32 + 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1
= 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1
= 181
10進数から2進数への変換
10進数を2進数に変換するには、一般的な方法として、10進数を2で除算し、余りが0の場合は、側に0を書き留めます。余りが1の場合は、1を書き留めます。
このプロセスは、商を2で除算し、商が0になるまで前の余りを削除することによって続行されます。除算を実行すると、10進数に相当する2進数を表す余りが、最下位桁から始まります(右)。新しい各桁は、前の桁のより重要な桁(左側)に書き込まれます。
例を見てみましょう. 数値2671について考えてみます。数値2671の2進変換を次の表に示します。
Division |
Quotient |
Remainder |
Binary Number |
2671 / 2 |
1335 |
1 |
1 |
1335 / 2 |
667 |
1 |
11 |
667 / 2 |
333 |
1 |
111 |
333 / 2 |
166 |
1 |
1111 |
166 / 2 |
83 |
0 |
0 1111 |
83 / 2 |
41 |
1 |
10 1111 |
41 / 2 |
20 |
1 |
110 1111 |
20 / 2 |
10 |
0 |
0110 1111 |
10 / 2 |
5 |
0 |
0 0110 1111 |
5 / 2 |
2 |
1 |
10 0110 1111 |
2 / 2 |
1 |
0 |
010 0110 1111 |
1 / 2 |
0 |
1 |
1010 0110 1111 |
この表は、変換のすべてのステップを明確にするためのものですが、実際には、変換の容易さと速度を取得するには、次の方法に従って結果を取得できます。
1980を、同等の2進数に変換する任意の10進数とします。表に示されている方法に従うよりも、次の方法でこの問題を解決します。
余りを矢印の方向に並べると、10進数に相当する2進数が得られます。 1980 = 0111 1011 1100
2進数形式
通常、2進数はビットのシーケンスとして書き込みます。 「ビット」は、マシンの「2進数」の略です。これらのビットにはフォーマット境界が定義されています。これらのフォーマット境界は、次の表に示されています。
Name |
Size in bits |
Example |
Bit |
1 |
1 |
Nibble |
4 |
0101 |
Byte |
8 |
0000 0101 |
Word |
16 |
0000 0000 0000 0101 |
Double Word |
32 |
0000 0000 0000 0000 0000 0000 0000 0101 |
基数の値を変更せずに、必要な数の先行ゼロを追加できますが、通常は、2進数を目的のサイズ境界に調整するために先行ゼロを追加します。
例えば、 表に示すように、さまざまなケースのように7を表すことができます。
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Bit |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
Nibble |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
1 |
Byte |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Word |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
ここで、2進数の右端のビットはビット位置ゼロであり、左側の各ビットには、上記の表に示すように、次に続くビット番号が与えられます。
ビットゼロは通常、最下位ビットまたはLSBと呼ばれ、左端のビットは通常、最上位ビットまたはMSBと呼ばれます。これらの表現形式について教えてください。
ビット
ビットは、バイナリコンピューター上のデータの最小単位です。 1つのビットは、0または1のいずれかの1つの値のみを表すことができます。ビットを使用してブール(True / False)値を表す場合は、 ビットはtrueまたはfalseを表します.
ニブル
ニブルは、数値システム、BCD(2進化10進数)または/および16進数(16進数)について話しているときに特に関心のある分野になります。
ニブルは、4ビット境界上のビットのコレクションです。 1つのBCDまたは16進数を表すには4ビットが必要です。ニブルを使用すると、最大16個の異なる値を表すことができます。
16進数の場合、値0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、およびFは4ビットで表されます。 BCDは10桁(0、1、2、3、4、5、6、7、8、9)を使用し、4ビットを必要とします。
実際、16の異なる値はニブルで表すことができますが、16進数とBCDの数字は、1つのニブルで表すことができる主要な項目です。ニブルのビットレベル表現は次のようになります。
バイト
バイトは、80x86マイクロプロセッサで使用される最も重要なデータ構造です。バイトは8ビットで構成され、マイクロプロセッサでアドレス可能な最小のデータ項目です。コンピュータのメインメモリとI / Oアドレスはすべてバイトアドレスであるため、80x86マイクロプロセッサプログラムが個別にアクセスできる最小の項目は8ビット値です。
小さいものにアクセスするには、データを含むバイトを読み取り、不要なビットをマスクする必要があります。次の章では、これを行うためのプログラミングを行います。
バイトの最も重要な用途は、文字コードを保持することです。バイト内のビットには、次のようにビット0(b0)から7(b7)までの番号が付けられます。
ビット0(b0)は下位ビットまたは最下位ビットであり、ビット7(b7)はバイトの上位ビットまたは最上位ビットです。
ここに示すように、バイトには正確に2つのニブルが含まれ、ビットb0からb3は下位ニブルを構成し、ビットb4からb7は上位ニブルを形成します。
バイトには正確に2つのニブルが含まれるため、バイト値には2つの16進数が必要です。
従来の最新のコンピューターはバイトアドレス可能なマシンであるため、個々のビットやニブルよりもバイト全体を操作する方が効率的であることがわかります。
これが、ほとんどのプログラマーが256項目以下を必要とするデータ型を表すために1バイト全体を使用する理由です。
バイトには8ビットが含まれているため、最大8ビットの2進数は256(Decimal)に相当する1111 1111になる可能性があるため、28または256の異なる値を表すことができます。したがって、通常、バイトは以下を表すために使用されます。
- 0〜255の範囲の符号なし数値
- -128〜 +127の範囲の符号付き数値
- ASCII文字コード
- また、256個以下の異なる値を必要とするその他の特殊なデータ型。多くのデータ型は256個未満の項目であるため、通常は8ビットで十分です。
言葉
ワードは16ビットのグループです. ただし、従来、ワードの境界は16ビットまたはプロセッサのデータバスのサイズとして定義されており、ダブルワードは2ワードです。したがって、WordとDouble Wordは固定サイズではなく、プロセッサによってシステムごとに異なります。ただし、概念を読むために、ワードを2バイトとして定義します。
ビットレベルで単語を見ると、ビット0(b0)から15(b15)までの単語のビットとして番号が付けられます。ビットレベルの表現は次のようになります。
ここで、ビット0はLSB(最下位ビット)であり、ビット15はMSB(最上位ビット)です。ワード内の他のビットを参照する必要がある場合、それらのビット位置番号を使用してそれらを参照します。
このように、ワードには正確に2バイトが含まれ、ビットb0からビットb7が下位バイトを形成し、ビットb8からb15が上位バイトを形成します。 16ビットのワードで、216(65536)個の異なる値を表すことができます。これらの値は次のとおりです。
- 0〜65,535の範囲の符号なし数値。
- -32,768から+32,767の範囲の符号付き数値
- 値が65,536以下のデータ型。このように、単語は主に次の目的で使用されます。
- 16ビット整数データ値
- 16ビットメモリアドレス
- 16ビット以下を必要とする任意の記数法
ダブルワード
ダブルワードはその名前に正確に従っており、2ワードです。したがって、 ダブルワードの量は32ビットです. ダブルワードは、上位ワードと下位ワード、4バイト、または8ニブルなどに分割することもできます。
このように、ダブルワードはあらゆる種類の異なるデータを表すことができます。次のようなものである可能性があります。
- 0〜4,294,967,295の範囲の符号なしダブルワード
- -2,147,483,648から2,147,483,647の範囲の符号付きダブルワード
- 32ビット浮動小数点値
- または32ビット以下を必要とするその他のデータ。
8進数システム
8進数システムは古いコンピューターシステムで人気がありましたが、今日ではほとんど使用されていません。ただし、知識のためだけに8進法の理想を採用します。
Octalシステムは、3ビット境界のバイナリシステムに基づいています。 8進数システムは基数8を使用し、0から7までの数字のみを含みます。このように、他の数字は数字を無効な8進数にします。
各位置の加重値は、表に示すように次のとおりです。
(base)power |
85 |
84 |
83 |
82 |
81 |
80 |
Value |
32768 |
4096 |
512 |
64 |
8 |
1 |
2進数から8進数への変換
整数の2進数から8進数に変換するには、次の2つの手順に従います。
まず、2進数をから3ビットセクションに分割します。 MSBへのLSB. 次に、3ビットの2進数を8進数に変換します。それをよりよく理解するために例を見てみましょう。 8進数システムに変換するために11001011010001などの2進数を指定した場合、次のようにこの番号に上記の2つの手順を適用します。
3-bit Section of Binary Number |
011 |
001 |
011 |
010 |
001 |
Equivalent number |
3 |
1 |
3 |
2 |
1 |
したがって、8進数は、に相当します 2進数11001011010001は31321です。
8進数から2進数への変換
整数の8進数を対応する2進数に変換するには、次の2つの手順に従います。
まず、10進数を同等の3ビットの2進数に変換します。次に、スペースを削除して3ビットセクションを結合します。例を見てみましょう。対応する2進数に変換する8進数の整数31321(Q)がある場合、上記の2つの手順を次のように適用します。
Equivalent number |
3 |
1 |
3 |
2 |
1 |
3-bit Section of Binary Number |
011 |
001 |
011 |
010 |
001 |
したがって、 8進数31321(Q)に相当する2進数は、011 0010 11010001です。
8進数から10進数への変換
8進数を10進数に変換するには、各位置の値に8進数の重みを掛けて、各値を加算します。
これをよりよく理解するために例を見てみましょう。対応する10進数に変換する8進数31321Qがあるとします。次に、次の手順に従います。
3*84 + 1*83 + 3*82 + 2*81 + 1*80
= 3*4096 + 1*512 + 3*64 + 2*8 + 1*1
= 12288 + 512 + 192 + 16 + 1
= 13009
10進数から8進数への変換
10進数を8進数に変換するのは少し難しいです。 10進数から8進数に変換する一般的な方法は、8で除算を繰り返します。この方法では、10進数を8で除算し、余りを最下位桁として書き込みます。このプロセスは、商を8で除算し、商が0になるまで余りを書き込むことによって続行されます。
除算を実行する場合、10進数に相当する8進数を表す残りの部分は、最下位桁(右)から始まり、新しい各桁は前の桁の次の有効桁(左)に書き込まれます。
例を挙げて理解を深めましょう。 13009などの10進数がある場合(上記の例からこの10進数を見つけ、それを8進数に戻すことで、前の例も確認できます)、この方法は次の表で説明されています。
Division |
Quotient |
Remainder |
Octal Number |
13009 / 8 |
1626 |
1 |
1 |
1626 / 8 |
203 |
2 |
21 |
203 / 8 |
25 |
3 |
321 |
25 / 8 |
3 |
1 |
1321 |
3 / 8 |
0 |
3 |
31321 |
ご覧のとおり、元の番号に戻っています。それが私たちが期待すべきことです。この表は手順を理解するためのものです。ここで、同じ変換を繰り返して、作業を容易にし、時間も節約するために実際に従う必要のある方法を理解しましょう。実際、どちらも同じものです。
矢印の方向に従って余りを並べると、期待していた8進数の31321が得られます。
16進数システム
16進数は、データ回復やその他のタイプのディスクトラブルシューティングまたはディスク分析プログラミングで最も一般的に使用されます。これは、16進数が次の2つの機能を提供する。
16進数は非常にコンパクトです。また、16進数から2進数へ、および2進数から16進数への変換は簡単です。ハードディスクのシリンダー、ヘッド、セクターの数など、多くの重要なことを計算する場合、またはハードディスクエディタープログラムを使用してさまざまな特性や問題を分析する場合は、16進システムに関する十分な知識が必要です。 16進法は、ニブルまたは4ビット境界を使用するバイナリシステムに基づいています。
16進数システム ベース16を使用 0から9までの数字と、A、B、C、D、E、およびFの文字のみが含まれます。Hを数字とともに使用して、16進数を示します。次の表は、さまざまな数値システムの表現を示しており、それらを互いに区別しています。
Binary |
Octal |
Decimal |
Hex |
0000B |
00Q |
00 |
00H |
0001B |
01Q |
01 |
01H |
0010B |
02Q |
02 |
02H |
0011B |
03Q |
03 |
03H |
0100B |
04Q |
04 |
04H |
0101B |
05Q |
05 |
05H |
0110B |
06Q |
06 |
06H |
0111B |
07Q |
07 |
07H |
1000B |
10Q |
08 |
08H |
1001B |
11Q |
09 |
09H |
1010B |
12Q |
10 |
0AH |
1011B |
13Q |
11 |
0BH |
1100B |
14Q |
12 |
0CH |
1101B |
15Q |
13 |
0DH |
1110B |
16Q |
14 |
0EH |
1111B |
17Q |
15 |
0FH |
1 0000B |
20Q |
16 |
10H |
この表は、0から16までの10進値について、ある基数から別の基数に変換する必要がある可能性のあるすべての情報を提供します。
次の表に、16進数の各位置の加重値を示します。
(Base)power |
163 |
162 |
161 |
160 |
Value |
4096 |
256 |
16 |
1 |
2進数から16進数への変換
2進数を16進形式に変換するには、まず2進数の左端に先行ゼロを埋めて、2進数に4ビットの倍数が含まれていることを確認します。その後、次の2つの手順に従います。
まず、2進数をLSBからMSBまでの4ビットセクションに分割します。次に、4ビットの2進数を16進数に変換します。メソッドをよりよく理解するために例を見てみましょう。対応する16進数に変換する任意の2進数1001110 11010011があるとします。次に、以下に示すように、上記の2つの手順を適用します。
4-bit binary number section |
0100 |
1110 |
1101 |
0011 |
Hexadecimal value |
4 |
E |
D |
3 |
したがって、に対応する16進値 2進数1001110 11010011は4ED3です。
16進数から2進数への変換
16進数を2進数に変換するには、次の2つの手順に従います。
まず、16進数を4ビットの2進数に変換します。次に、スペースを削除して4ビットセクションを結合します。手順をよりよく理解するために、上記の16進数である4ED3の例を取り上げ、次の2つの手順を適用してみましょう。
Hexadecimal value |
4 |
E |
D |
3 |
4-bit binary number section |
0100 |
1110 |
1101 |
0011 |
したがって、16進数の4ED3の場合、対応する2進数= 0100 1110 11010011が得られます。
これが予想される答えです。
16進数から10進数への変換16進数から10進数に変換するには、各位置の値に16進数の重みを掛けて、各値を加算します。手順をよりよく理解するために例を見てみましょう。同等の10進数に変換される16進数3ABEがあると仮定します。次に、手順は次のようになります。
3*163 + A*162 + B*161 + E*160
= 3* 4096 + 10* 256 + 11*16 + 14
= 12288 + 2560 + 176 + 14
= 15038
したがって、 16進数の3ABEは15038です。
10進数から16進数への変換
10進数を16進数に変換するには、一般的な方法は次のとおりです。 16で繰り返し除算. この方法では、10進数を16で割り、余りを最下位桁として書き込みます。
このプロセスは、商を16で除算し、商が0になるまで余りを書き込むことによって続行されます。除算を実行すると、10進数に相当する16進数を表す余りが、最下位桁(右)から始まり、新しい桁は、前の桁の次のより重要な桁(左側)に書き込まれます。
例を挙げて学びましょう。上記の変換後に取得した10進数15038を使用します。これにより、上記の変換を確認したり、その逆を確認したりすることもできます。
Division |
Quotient |
Remainder |
Hex Number |
15038 / 16 |
939 |
14 (E H) |
E |
939 / 16 |
58 |
11 (B H) |
BE |
58 / 16 |
3 |
10 (A H) |
ABE |
3 / 16 |
0 |
3 (3 H) |
03ABE |
したがって、10進数15038に相当する16進数03ABE Hが得られ、このようにして元の数値に戻ります。それが私たちが期待すべきことです。
次に示す表は、16進数から10進数への変換、およびその逆の0から255の10進数の範囲をすばやく検索するのに役立ちます。
このSquareテーブルには、0からAまでの16行があり、0からAまでの16列もあります。このテーブルから、0HからFFHの範囲内にある任意の16進数の10進値を見つけることができます。これは、数値の10進数値が0から255の10進数の範囲内にある必要があることを意味します。
- 上記の表から16進数の10進値を見つける:上記の表では、行数は16進数の最初の16進数(左16進数)を表し、列数は16進数の2番目の16進数(右16進数)を表します。
同等の10進数に変換するために、ACHなどの16進数を用意します。次に、テーブルのA番目の行のC番目の列に10進数値が表示され、16進数ACHと同等の10進数である10進数値172が取得されます。
- 上記の表から10進数の16進値を見つける:上記の表では、行数は16進数の最初の16進数(左16進数)を表し、列数は16進数の2番目の16進数(右16進数)を表します。したがって、同等の16進数に変換する10進数がある場合は、表でその数値を検索し、次のように同等の16進数値を見つけます。
10進数の16進値=(行番号)(列番号)
たとえば、10進数154に相当する16進数を検索する場合は、表内の数値の位置を参照してください。番号154は、表の9行目とA列目にあります。したがって、10進数154に相当する16進値は9AHです。
ASCIIコード
略語ASCIIは、情報交換のためのAmerican StandardCodeの略です。これは、ASCII文字セットの最初の128文字と同じですが、残りの文字とは異なる文字、数字、および記号のコーディング標準です。これらの他の文字は通常、IBMによって定義された拡張文字の特殊ASCII文字と呼ばれます。
ASCIIコード0から1FHである最初の32文字は、印刷されない文字の特別なセットを形成します。これらの文字は、シンボルを表示するのではなく、さまざまなプリンターおよび表示制御操作を実行するため、制御文字と呼ばれます。これらの文字は、この章に記載されているASCII文字表にリストされています。これらの制御文字には、次の意味があります。
NUL(ヌル):
文字なし。データがないストレージデバイスの表面(プラッターの表面など)の時間またはスペースを埋めるために使用されます。データワイパー(破壊的および非破壊的両方)のプログラミングを行うときにこの文字を使用して、未割り当て領域を消去し、削除されたデータが誰によってもプログラムによっても復元されないようにします。
SOH(見出しの開始):
この文字は、見出しの開始を示すために使用されます。見出しには、アドレスまたはルーティング情報が含まれている場合があります。
TX(テキストの開始):
この文字はテキストの開始を示すために使用され、このようにこれは見出しの終了を示すためにも使用されます。
ETX (End of Text):
この文字は、STXで開始されたテキストを終了するために使用されます。
EOT(送信終了):
この文字は、送信の終了を示します。これには、見出しに1つ以上の「テスト」が含まれている可能性があります。
ENQ(お問い合わせ):
遠隔地からの応答要求です。ステーションが自分自身を識別するためのリクエストです。
ACK(確認):
これは、サンダーへの肯定応答として受信デバイスによって送信される文字です。これは、ポーリングメッセージに対する肯定的な応答として使用されます。
ベル(ベル):
人間の注意を引く必要がある場合に使用されます。警報装置や注意装置を制御する場合があります。以下に示すように、コマンドプロンプトでこの文字を入力すると、コンピューターに接続されているスピーカーからベル音が聞こえます。
C:\>エコー^ G
ここで、^ Gは、Ctrl + Gキーの組み合わせの組み合わせによって出力されます。
BS(バックスペース):
この文字は、印刷機構または表示カーソルが1つの位置で後方に移動したことを示します。
HT(水平タブ):
これは、印刷メカニズムまたは表示カーソルが次に事前に割り当てられた「タブ」または停止位置に移動したことを示します。
LF(ラインフィード):
印刷機構や表示カーソルが次の行の先頭に移動したことを示します。
VT(垂直タブ):
これは、事前に割り当てられた一連の印刷行の次の印刷メカニズムまたは表示カーソルの移動を示します。
FF(フォームフィード):
印刷機構または表示カーソルが次のページ、から、または画面の開始位置に移動したことを示します。
CR(キャリッジリターン):
同じ行の開始位置への印刷機構または表示カーソルの移動を示します。
SO(シフトアウト):
これは、シフトイン文字に到達するまで、後続のコードの組み合わせが標準文字セットの外側として解釈されることを示しています。
I(シフトイン):
以下のコードの組み合わせは、標準の文字セットに従って解釈されることを示しています。
DLE(データリンクエスケープ):
これは、1つまたは複数の連続する文字の意味を変更する文字です。補足的な制御を提供したり、任意のビットの組み合わせを持つデータ文字の送信を許可したりできます。
DC1、DC2、DC3、およびDC4(デバイスコントロール):
これらは、補助デバイスまたは特別な端末機能を制御するための文字です。
NAK(否定応答):
これは、送信者への否定的な応答として受信デバイスによって送信される文字です。これは、ポーリングメッセージに対する否定的な応答として使用されます。
SYN(同期/アイドル):
これは、データが送信されていないときに同期を実現するために同期伝送システムによって使用されます。同期伝送システムは、SYN文字を継続的に送信する場合があります。
ETB(送信ブロックの終わり):
この文字は、通信目的のデータブロックの終わりを示します。これは、ブロック構造が必ずしも処理形式に関連していない場合に、データをブロックするために使用されます。
CAN(キャンセル): これは、メッセージまたはブロックでその前にあるデータは、通常、エラーが検出されたために無視する必要があることを示しています。
EM(End of Medium):これは、テープ、表面(通常はディスクのプラッター)、またはその他の媒体の物理的な端、または媒体の使用済み部分の必要な端を示します。
SUB(代替): これは、誤りまたは無効であることが判明した文字の代わりになります。
ESC(エスケープ): これは、指定された数の連続する文字に別の意味を与えるという点で、コード拡張を提供することを目的とした文字です。
FS(ファイルセパレーター): この文字は、ファイル区切り文字として使用されます。
GS(グループセパレーター): グループ区切り文字として使用されます。
RS(レコードセパレーター): レコード区切り文字として使用されます。
米国(ユナイテッドセパレーター):
統一された区切り文字です。
32個のASCII文字コードの2番目のグループには、さまざまな句読記号、特殊文字、および数字が含まれています。このグループで最も注目すべきキャラクターは次のとおりです。
space character (ASCII code 20H)
numeric digits 0 through 9 (ASCII codes 30h through 39h)
mathematical and logical symbols
SP(スペース):
単語を区切ったり、印刷機構を動かしたり、カーソルを1つ前に表示したりするために使用される非印刷文字です。
32文字のASCII文字の3番目のグループは、大文字のアルファベット文字のグループです。文字AからZのASCIIコードは、41Hから5AHの範囲にあります。アルファベットは26文字しかないため、残りの6つのコードにはさまざまな特殊記号が含まれています。
32個のASCII文字コードの4番目のグループは、小文字のアルファベット記号、5つの追加の特殊記号、および別の制御文字の削除のグループです。
DEL(削除):
これは、不要な文字を削除するために使用されますが、不要な文字を削除すると言うことができます。
次に、ASCIIコードと拡張文字を表す2つの表を示します。最初の表は、説明されているさまざまなタイプの文字の4つのグループすべてを表しています。このテーブルは、次に示すデータ表現とASCIIテーブルです。
データ表現とASCIIコードテーブル:
HEX |
DEC |
CHR |
CTRL |
00 |
0 |
NUL |
^@ |
01 |
1 |
SOH |
^A |
02 |
2 |
STX |
^B |
03 |
3 |
ETX |
^C |
04 |
4 |
EOT |
^D |
05 |
5 |
ENQ |
^E |
06 |
6 |
ACK |
^F |
07 |
7 |
BEL |
^G |
08 |
8 |
BS |
^H |
09 |
9 |
HT |
^I |
0A |
10 |
LF |
^J |
0B |
11 |
VT |
^K |
0C |
12 |
FF |
^L |
0D |
13 |
CR |
^M |
0E |
14 |
SO |
^N |
0F |
15 |
SI |
^O |
10 |
16 |
DLE |
^P |
11 |
17 |
DC1 |
^Q |
12 |
18 |
DC2 |
^R |
13 |
19 |
DC3 |
^S |
14 |
20 |
DC4 |
^T |
15 |
21 |
NAK |
^U |
16 |
22 |
SYN |
^V |
17 |
23 |
ETB |
^W |
18 |
24 |
CAN |
^X |
19 |
25 |
EM |
^Y |
1A |
26 |
SUB |
^Z |
1B |
27 |
ESC |
1C |
28 |
FS |
1D |
29 |
GS |
1E |
30 |
RS |
1F |
31 |
US |
HEX |
DEC |
CHR |
20 |
32 |
SP |
21 |
33 |
! |
22 |
34 |
" |
23 |
35 |
# |
24 |
36 |
$ |
25 |
37 |
% |
26 |
38 |
& |
27 |
39 |
' |
28 |
40 |
( |
29 |
41 |
) |
2A |
42 |
* |
2B |
43 |
+ |
2C |
44 |
, |
2D |
45 |
- |
2E |
46 |
. |
2F |
47 |
/ |
30 |
48 |
0 |
31 |
49 |
1 |
32 |
50 |
2 |
33 |
51 |
3 |
34 |
52 |
4 |
35 |
53 |
5 |
36 |
54 |
6 |
37 |
55 |
7 |
38 |
56 |
8 |
39 |
57 |
9 |
3A |
58 |
: |
3B |
59 |
; |
3C |
60 |
< |
3D |
61 |
= |
3E |
62 |
> |
3F |
63 |
? |
HEX |
DEC |
CHR |
40 |
64 |
@ |
41 |
65 |
A |
42 |
66 |
B |
43 |
67 |
C |
44 |
68 |
D |
45 |
69 |
E |
46 |
70 |
F |
47 |
71 |
G |
48 |
72 |
H |
49 |
73 |
I |
4A |
74 |
J |
4B |
75 |
K |
4C |
76 |
L |
4D |
77 |
M |
4E |
78 |
N |
4F |
79 |
O |
50 |
80 |
P |
51 |
81 |
Q |
52 |
82 |
R |
53 |
83 |
S |
54 |
84 |
T |
55 |
85 |
U |
56 |
86 |
V |
57 |
87 |
W |
58 |
88 |
X |
59 |
89 |
Y |
5A |
90 |
Z |
5B |
91 |
[ |
5C |
92 |
\ |
5D |
93 |
] |
5E |
94 |
^ |
5F |
95 |
_ |
HEX |
DEC |
CHR |
60 |
96 |
` |
61 |
97 |
a |
62 |
98 |
b |
63 |
99 |
c |
64 |
100 |
d |
65 |
101 |
e |
66 |
102 |
f |
67 |
103 |
g |
68 |
104 |
h |
69 |
105 |
i |
6A |
106 |
j |
6B |
107 |
k |
6C |
108 |
l |
6D |
109 |
m |
6E |
110 |
n |
6F |
111 |
o |
70 |
112 |
p |
71 |
113 |
q |
72 |
114 |
r |
73 |
115 |
s |
74 |
116 |
t |
75 |
117 |
u |
76 |
118 |
v |
77 |
119 |
w |
78 |
120 |
x |
79 |
121 |
y |
7A |
122 |
z |
7B |
123 |
{[} |
7C |
124 |
| |
7D |
125 |
} |
7E |
126 |
~ |
7F |
127 |
DEL |
次の表は、拡張ASCII文字と呼ばれることが多い128個の特殊ASCII文字セットを示しています。
HEX |
DEC |
CHR |
80 |
128 |
Ç |
81 |
129 |
ü |
82 |
130 |
é |
83 |
131 |
â |
84 |
132 |
ä |
85 |
133 |
à |
86 |
134 |
å |
87 |
135 |
ç |
88 |
136 |
ê |
89 |
137 |
ë |
8A |
138 |
è |
8B |
139 |
ï |
8C |
140 |
î |
8D |
141 |
ì |
8E |
142 |
Ä |
8F |
143 |
Å |
90 |
144 |
É |
91 |
145 |
æ |
92 |
146 |
Æ |
93 |
147 |
ô |
94 |
148 |
ö |
95 |
149 |
ò |
96 |
150 |
û |
97 |
151 |
ù |
98 |
152 |
ÿ |
99 |
153 |
Ö |
9A |
154 |
Ü |
9B |
155 |
¢ |
9C |
156 |
£ |
9D |
157 |
¥ |
9E |
158 |
₧ |
9F |
159 |
ƒ |
A0 |
160 |
á |
A1 |
161 |
í |
A2 |
162 |
ó |
A3 |
163 |
ú |
A4 |
164 |
ñ |
HEX |
DEC |
CHR |
A5 |
165 |
Ñ |
A6 |
166 |
ª |
A7 |
167 |
º |
A8 |
168 |
¿ |
A9 |
169 |
⌐ |
AA |
170 |
¬ |
AB |
171 |
½ |
AC |
172 |
¼ |
AD |
173 |
¡ |
AE |
174 |
« |
AF |
175 |
» |
B0 |
176 |
░ |
B1 |
177 |
▒ |
B2 |
178 |
▓ |
B3 |
179 |
│ |
B4 |
180 |
┤ |
B5 |
181 |
╡ |
B6 |
182 |
╢ |
B7 |
183 |
╖ |
B8 |
184 |
╕ |
B9 |
185 |
╣ |
BA |
186 |
║ |
BB |
187 |
╗ |
BC |
188 |
╝ |
BD |
189 |
╜ |
BE |
190 |
╛ |
BF |
191 |
┐ |
C0 |
192 |
└ |
C1 |
193 |
┴ |
C2 |
194 |
┬ |
C3 |
195 |
├ |
C4 |
196 |
─ |
C5 |
197 |
┼ |
C6 |
198 |
╞ |
C7 |
199 |
╟ |
C8 |
200 |
╚ |
C9 |
201 |
╔ |
HEX |
DEC |
CHR |
CA |
202 |
╩ |
CB |
203 |
╦ |
CC |
204 |
╠ |
CD |
205 |
═ |
CE |
206 |
╬ |
CF |
207 |
╧ |
D0 |
208 |
╨ |
D1 |
209 |
╤ |
D2 |
210 |
╥ |
D3 |
211 |
╙ |
D4 |
212 |
╘ |
D5 |
213 |
╒ |
D6 |
214 |
╓ |
D7 |
215 |
╫ |
D8 |
216 |
╪ |
D9 |
217 |
┘ |
DA |
218 |
┌ |
DB |
219 |
█ |
DC |
220 |
▄ |
DD |
221 |
▌ |
DE |
222 |
▐ |
DF |
223 |
▀ |
E0 |
224 |
α |
E1 |
225 |
ß |
E2 |
226 |
Γ |
E3 |
227 |
π |
E4 |
228 |
Σ |
E5 |
229 |
σ |
E6 |
230 |
µ |
E7 |
231 |
τ |
E8 |
232 |
Φ |
E9 |
233 |
Θ |
EA |
234 |
Ω |
EB |
235 |
δ |
EC |
236 |
∞ |
ED |
237 |
φ |
EE |
238 |
Ε |
HEX |
DEC |
CHR |
EF |
239 |
∩ |
F0 |
240 |
≡ |
F1 |
241 |
± |
F2 |
242 |
≥ |
F3 |
243 |
≤ |
F4 |
244 |
⌠ |
F5 |
245 |
⌡ |
F6 |
246 |
÷ |
F7 |
247 |
≈ |
F8 |
248 |
° |
F9 |
249 |
∙ |
FA |
250 |
· |
FB |
251 |
√ |
FC |
252 |
ⁿ |
FD |
253 |
² |
FE |
254 |
■ |
FF |
255 |
|
データおよびデータストレージの表現によく使用される、いくつかの重要な記数法の用語
以下の表は、小数の接頭辞および拡大接頭辞として使用されるさまざまな接頭辞を表しています。
バイト:
バイトの最も重要な用途は、文字コードを保持することです。以前に説明しました。
キロバイト
技術的にはキロバイトは1024バイトですが、1000バイトの同義語として大まかに使用されることがよくあります。 10進法では、キロは1000を表しますが、2進法では、キロは1024(210)です。
キロバイトは通常、KまたはKbで表されます。 10進数のK(1000)と2進数のK(1024)を区別するために、IEEE(Institute of Electrical and Electronics Engineers)標準では、10進数のキロに小さいkを使用し、2進数のキロに大文字のKを使用するという規則に従うことを提案しています。しかし、この規則は決して厳密には守られていません。
メガバイト
メガバイトは、1048576(220)バイトのデータストレージを表すために使用されますが、MBpsのようにデータ転送速度を表すために使用される場合、100万バイトを指します。メガバイトは通常、MまたはMBと省略されます。
ギガバイト
ギガバイトは、1,073,741,824(230)バイトのストレージを表すために使用され、1ギガバイトは1,024メガバイトに相当します。ギガバイトは通常、GまたはGBと省略されます。
テラバイト
テラバイトは1,099,511,627,776(240)バイトで、約1兆バイトです。テラバイトは、正確に1兆バイトである1012(1,000,000,000,000)バイトと呼ばれることもあります。
ペタバイト
ペタバイトは、1,125,899,906,842,624(250)バイトとして記述されます。ペタバイトは1,024テラバイトに相当します。
エクサバイト
エクサバイトは、1,152,921,504,606,846,976(260)バイトとして記述されます。エクサバイトは1,024ペタバイトに相当します。
ゼタバイト
ゼタバイトは、約1021(1,000,000,000,000,000,000,000)バイトである1,180,591,620,717,411,303,424(270)バイトとして記述されます。ゼタバイトは1,024エクサバイトに相当します。
ヨッタヴィテ
ヨタバイトは、約1024(1,000,000,000,000,000,000,000,000)バイトである1,208,925,819,614,629,174,706,176(280)バイトとして記述されます。ヨタバイトは1,024ゼタバイトに相当します。
一般的なデータストレージ用語
データのビットのさまざまなグループに、前に与えられた用語を参照するために使用されるさまざまな名前があります。最も一般的に使用されるもののいくつかを次の表に示します。
Term |
Number of Bits |
Bit / Digit / Flag |
1 |
Nibble / Nybble |
4 |
Byte / Character |
8 |
Word |
16 |
Double Word / Long Word |
32 |
Very Long Word |
64 |