なぜバイナリ(コンピュータ用)でも小数(人間用)でもない他のベースを使用するのはなぜですか?
コンピュータは最終的にそれらをバイナリで表現することになり、人間は彼らの10進表現を取得することを強く好みます。なぜこれら2つの基盤に固執しないのですか?
なぜバイナリ(コンピュータ用)でも小数(人間用)でもない他のベースを使用するのはなぜですか?
コンピュータは最終的にそれらをバイナリで表現することになり、人間は彼らの10進表現を取得することを強く好みます。なぜこれら2つの基盤に固執しないのですか?
回答:
8進数(8進数)と16進数(16進数)は、ほとんどの人が使用する2進数(2進数)システムコンピューターと10進数(10進数)システムの間の妥協案です。
コンピューターは複数のシンボルが苦手なので、ベース2(シンボルが2つしかない場合)が適していますが、長い文字列(数字の多い数字)は問題になりません。人間は複数のシンボルで非常に優れていますが、長い文字列を覚えるのにはあまり適していません。
8進数と16進数は、多くのシンボルを処理できるという人間の利点を活用しますが、すべての16進数は4桁の2進数()を表し、すべての8進数は3(8 =を表すため、2 3)。16進数は8進数よりも勝ると思います。これは、16進数がバイトおよび16/32/64ビット数を表すために簡単に使用できるためです。
利便性と簡潔さのためにそれらを使用します。
HexおよびOctは、バイナリの非常に優れた圧縮表現です。特に16進数は、メモリアドレスの圧縮形式に適しています。すべての8進数は3バイナリビットに、すべての16進数は4バイナリビットに直接マップされます。これは、基数(8および16)が2の累乗(および2 4)であるためです。たとえば、バイナリ01101001を16進数69として書き込むか、10 進数151として先頭にゼロを付けて拡張する場合。
したがって、64ビットのメモリアドレスが必要だとしましょう。64のすべてのバイナリビットを調べるか、16桁の16進数に圧縮することができます。多くの場合、いくつかのアドレスを比較して、それらが同じか連続しているかどうかを確認する必要はありません。あなたはむしろ64ビットまたは16桁を見ますか?
テキスト内の2進数はスペースの無駄です。
他の回答で既に述べたように、さまざまな目的や制約に応じてさまざまな表記法があります。表記法は実際には文字のシーケンスとしてのエンコードであり、アルゴリズムとデータ構造の研究から、抽象概念、リスト、またはセットをエンコードする方法はたくさんあることがわかっています。 。この場合、ほとんどがアルゴリズム上の利便性です。
数値の表現を検討する場合、同じことが当てはまります。コンピュータの内部では、すべてが最低レベルでバイナリですが、一部のアプリケーションでは見知らぬ表現が使用される場合があります。
コンピューターの外部では、表現される価値の種類に関する人間の利便性に応じて、人間が理解できるあらゆる表現を使用します。多くの場合、バイナリ表現は長すぎて構造化されていないため、簡単に読み書きできないため、16進数または8進数に置き換えられます。多くの場合、選択は、情報をバイナリワードで構造化する方法に関係する場合がありますが、これは必ずしも数値を表すことを意図したものではありません。
しかし、数字、つまり数字の表現のみを検討する場合、他の数字表現システムを調べて、生理学、習慣、利便性という主要な要因を理解する価値 があります。利便性はもちろん、使用状況に依存するため、多様性を生み出す主要な要因です。
質問の本文は決してコンピューターに限定されていないように思われ、人間は他のいくつかの数え上げシステムを使用してきました。それらの一部は、たとえば長整数(非整数の数字は言うまでもありません)を扱う場合など、コンピューター内でも使用されます。
最初の発言は、人々が単位として数千または数百万を数えるとき、これらは10の累乗であるため、依然として10進数と見なされるということです。考えられる理由の1つは、数字を表すために使用されるシンボルの数かもしれません(ただし、他のシステムで見られるように、これは議論の余地のある問題です)。
次に、人間に関しては、5 進システムと呼ばれるベース5のいくつかのシステムを使用し ます。実際、これらのシステムのほとんどは2つのベースであり、2番目のベースは2または4で、ベース5と交互になっています。それがどこから来たのか推測してください:)
これらのダブルベースのシステムが呼び出され、二五元または四五元のシステム。純粋なキナリーはほとんど使用されません。
ローマ数字は、2進法のシステムと見なされる場合があります(これは、それらを使用して算術を行う方法の指標です)。中国と日本のそろばんはバイキナリを使用します。Quadri-quinaryはMayaで使用されました。
システムを使用する理由はおそらくたくさんあります。一つの正当な理由は、それが最初のローカルデザインであり、人々が今ではそれに慣れているということです。たとえば、英語圏の人々が距離を測定しようとするとき、なぜ非常に奇妙な計算システムを使用しているのかと疑問に思うかもしれません。番号付けではなく、複数の単位の問題であると主張することができますが、それは非常に弱い発言です。数値は主に物事を測定するために使用されます。
システムを維持する他の理由は、特定のコンテキストでの利便性です。異なる記号の数、またはそろばん上の位置と、十分に大きな数を形成するために必要な記号の出現回数との間にはトレードオフがあります。Base 2は2つの異なるシンボルで動作しますが、多くの出現があり、マテリアル表現には不便かもしれません。Vigesimal base 20には20個のシンボルと、人々が覚えていないような非常に大きな乗算テーブルが必要です。しかし、バイキナリまたはクアドリキナリのシステムは、特にそろばんを作成するために、はるかに管理しやすいです。純粋な五次系はおそらくもっと良いでしょうが、それは生理学に基づいた習慣と直感に反します。そして、何もよくわからないときは、指を使って数えることができるのはいつでもいいことです。
しかし、それだけではありません。
非常に古く、非常に一般的なシステムの1つは、時間と角度を測定するために使用される六十進法システムです(ただし、地球の自転によってそれらが関連していることはわかっています)。ベース60を使用しますが、60個のシンボルはあまりにも多すぎるため使用しません。そのため、シンボリックを表すために別のシステム(10進システムなど)に依存します。
円は、60度の角度に対応する6つの部分に分割できます。これは、正三角形で最も簡単に構築できます。その後、各学位は60分の弧で、それぞれ60秒に分割されます。
ウィキペディアによると
紀元前3千年紀の古代シュメール人が起源で、古代バビロニア人に受け継がれ、現在でも時間、角度、地理座標の測定に(変更された形式で)使用されています。
起源を考えると、数学がまだ幼児期に入っていなかった頃は、かなり便利なシステムでした。60°の角度は描画しやすいだけでなく、60には多くの要素があるため、余りなく整数で多くの方法で分割することができます。
しかし、バビロニア人の内臓三元系など、60に到達する他の方法があります。
なぜ我々はまだ六十進法を使用するのですか?私たちはそれに慣れているだけで、変更を完全に正当化するには相反する問題が多すぎるかもしれません。
ナンバリングシステムとユニットシステムの間には多くの相互作用があることに注意してください。しかし、測定は数値の主要な役割であるため、これは予想されることです。これは、メモリサイズの10進数と2進数のメトリックの対立で顕著です。
コンピューターは2進数を理解し、2進数で、数値の重みは2の累乗であるため、数値によっては数値を表す桁数が大きくなる場合があります。
たとえば、10進数で64は7ビットで表すことができますが、5000を表すには13ビットが必要です。
8進数および16進数は、2進数を表すコンパクトな方法です。
[What advantage is there to using a base different from ten or (a power of) two?]
どのように答えますか、または他にどのように解釈しWhy not stick to [bases 2 and 10]?
ますか?