回答:
この回答は、元の質問に対して書かれたものです。
それは、Cなどを知っている人に言語を親しみやすくすることでした。そして、問題は、なぜそれをそれらでサポートするのかです!
18ビット幅のワードを使用する(および他の36ビットワードを使用する)アーキテクチャ(さまざまなPDP)があったため、数字が3ビット幅のリテラルが役立ちます。
実際に、私はそれがJavaコードで使用さ見てきた唯一の場所は、例えば、UNIXスタイルの権限を指定するためである0777
、0644
など
(なぜそれがサポートされているのかについての正直な答えは、「この質問に賛成投票することです」)。
「8進数は以前ほど一般的ではありません。ただし、1ワードのビット数が3の倍数である場合、8進数が使用されます。これは、UNIXシステムでのファイルのアクセス許可を表すための略記や、 UTF8番号など」
コンピュータ(科学)の歴史。ビットの集合を表すために、ベース10は適合せず、ベース8 = 2 3は3ビット、ベース16 = 2 4は4ビットに適合します。
基数8の利点は、すべての桁が実際に数字である0〜7であるのに対して、基数16は「数字」0〜9A〜Fを持っていることです。
1バイトの8ビットの場合、16(16進数)の方が適しています。Unixベース8の8進数のrwx
場合、ユーザー、グループ、その他のビット(読み取り、書き込み、実行)に使用されることがよくあります。したがって、0666や0777などの8進数です。
16進数はユビキタスであり、コンピューターのワードサイズが今日では複数バイトであるためです。8ビットbyte
が標準になったということは、もう1 つの難しい関連の話です(2 3ビットとアドレス指定)。
「8進数(8を基数とする)は何に使用されるのですか?」の元の回答
バイナリの省略形:コンピューティングマシン(UNIVAC 1050、PDP-8、ICL 1900など)では、ワードサイズが3で割り切れるため、バイナリの省略形としてOctalが使用されています(各8進数は3つのバイナリを表します)。数字)。したがって、2、4、8、または12桁で、マシンワード全体を簡潔に表示できます。また、ニキシー管、7セグメントディスプレイ、および電卓をオペレーターコンソールに使用できるようにすることでコストを削減しました。バイナリディスプレイは複雑すぎて使用できず、10進ディスプレイは基数を変換するための複雑なハードウェアが必要で、16進ディスプレイはより多くの数値を表示する必要がありました。 。
16、32、または62ビットのワード表現:最新のすべてのコンピューティングプラットフォームは、16ビット、32ビット、または64ビットワードを使用し、さらに8ビットバイトに分割されます。このようなシステムでは、バイトごとに3桁の8進数が必要であり、最上位の8進数は2桁の2進数を表します(次の有効バイトの1ビットがある場合は、それに加えて)。16ビットワードの8進数表現には6桁が必要ですが、最上位の8進数は1ビット(0または1)のみを(かなり厳密に)表します。この表現は、4桁の8進数で塗りつぶされているため、最上位バイトを簡単に読み取る方法を提供しません。したがって、2つの16進数字が1バイトを正確に指定するため、今日のプログラミング言語では16進法がより一般的に使用されています。2のべき乗のワードサイズを持つ一部のプラットフォームには、8進数で表示するとより簡単に理解できる命令サブワードがあります。これには、PDP-11およびMotorola 68000ファミリーが含まれます。現代のユビキタスx86アーキテクチャもこのカテゴリに属しますが、このプラットフォームで8進数が使用されることはほとんどありません。
エンコーディングの説明:最新のx86アーキテクチャにおけるオペコードのバイナリエンコーディングの特定のプロパティは、8進数で表示するとより容易に明らかになります。たとえば、ModRMバイトは2、3、3ビットのフィールドに分割されるため、8進数は説明に役立ちますこれらのエンコーディング。
計算とファイルアクセス許可: Octalは16進数の代わりにコンピューティングで使用されることがあります。おそらく現代では、Unixシステムでのファイル許可(chmodへのアクセス許可)と組み合わせて使用されることが最も多いでしょう。これには、数字として余分な記号を必要としないという利点があります(16進法は16進数なので、0〜9以外に6つの記号が必要です)。
デジタルディスプレイ: 8進数は、表現に使用されるシンボルの数が少ないため、デジタルコンテンツを画面に表示する際にも使用されます。
バイト文字列のグラフィック表現:一部のプログラミング言語(C、Perl、Postscriptなど)には、\ nnnとしてエスケープされたOctalのテキスト/グラフィックの表現があります。8進数表現は、6ビットのグループをエンコードするUTF-8の非ASCIIバイトで特に便利です。開始バイトには8進値\ 3nnがあり、継続バイトには8進値\ 2nnがあります。
初期の浮動小数点演算: Octalは、Ferranti Atlas(1962)、Burroughs B5500(1964)、Burroughs B5700(1971)、Burroughs B6700(1971)およびBurroughs B7700(1972)コンピュータの浮動小数点にも使用されました。
トランスポンダ内:航空機は、地上レーダーから問い合わせを受けたときに4桁の8進数で表されるコードを送信します。このコードは、レーダー画面で異なる航空機を区別するために使用されます。