ASCIIは文字専用です。NULLは文字ではないのに、なぜNULLがASCII値0になるのか
1 に答える
ASCII は [印刷可能な] 文字専用です
完全ではありません:印刷可能な文字に加えて、ASCII には多くの制御文字も含まれています。
ASCII コード 0 (NUL) は、そのような制御文字の 1 つです。
ウィキペディアを引用するには:
ASCII は最初の 32 コード (10 進数の 0 から 31 の数字) を制御文字用に予約しています: コードはもともと印刷可能な情報を表すのではなく、ASCII を利用するデバイス (プリンターなど) を制御したり、データに関するメタ情報を提供したりするためのものです。磁気テープに保存されているようなストリーム。たとえば、文字 10 は「改行」機能 (プリンターが用紙を進める) を表し、文字 8 は「バックスペース」を表します。
最近では、Cで文字列の終わりを示すために NUL 文字が最も頻繁に使用されます。しかし、その本来の目的は異なっていました。
この文字の本来の意味は NOP のようなものでした -- プリンタや端末に送信された場合、何もしません (ただし、一部の端末では誤ってスペースとして表示されます)。電気機械式テレプリンターがコンピューターの出力デバイスとして使用されたとき、メカニズムが次の行の最初の印刷位置に戻るまでの時間を確保するために、印刷された各行の最後に 1 つまたは複数のヌル文字が送信されました。パンチされたテープでは、文字は穴がまったくない状態で表現されるため、新しいパンチされていないテープは最初にヌル文字で埋められ、多くの場合、新しい文字をテープにパンチすることによって、ヌル文字の予約されたスペースにテキストを「挿入」できます。ヌル。