アカウント名:
パスワード:
コンピュータサイエンスの世界では2進数、8進数、16進数との親和性がとても良い。初期のCPUにはヘンテコなbit数のレジスタ等を持った切りの悪いものもありましたが淘汰されました。いまはほぼ以下のような感じでほぼ統一してbyte、word等々を実装されている。 1byte = 8bit 1word = 2byte = 16bit 1long word = 2word = 4byte = 32bit 1quad word = 4word = 8byte = 64bit上記の様にを2進数、8進数、16進数と親和性がとても良いのは察しがつきますか?で、このまま数をデカクして行くと1KiB=1024Byteとした方が数字として扱いやすいのです。 1024(10進数) = 400(16進数) = 2000(8進数)
人が10進数を好んで使ってきたのはたぶん指の数でしょうね、でも10進数って数学的に見ると意外と切が悪くて扱いづらいですよね。人間の片手の指の数が4本か8本だったら良かったのにwww
> 人が10進数を好んで使ってきたのはたぶん指の数でしょうね、でも10進数って数学的に見ると意外と切が悪くて扱いづらいですよね。
数学的にキリが悪い例を具体的に教えてください。
#個人的には片手6本の両手で12本が良かったんじゃないかと思う。#2,3,4で割れるし。
> 数学的にキリが悪い例を具体的に教えてください。
1つの”○○進数”内で完結している話であれば具合が悪くない。ところがA進数からB進数、C進数と進数を変換する場合に、2のN乗”進数”どおしでは親和性がとても高いのは理解できますか?
そしてコンプピュータの世界では基本2進数なのですがコレは人間から見ると大きな数を扱いにくいモノです。先に挙げた例に追加して1024(10進数)を2進数で表すと10000000000(2進数)となり桁が多くて人間から見ると扱い辛いですよね。そこで2進数と親和性の高い8進数、16進数に置き換えて扱うことが行なわれています。2進⇔16進変換は慣れると簡単なことは使ったことがある人には分かるはずです。そしてコンプピュータの世界では基本2進数、16進数を10進数に変更するのは結構大変です。
数学的にキリが悪いというのは他の進数との親和性が低いことを意味します。
それは「数学的」にではなく「(電子)コンピュータ的」の誤解じゃないかな?
算術コストはネイピア数を底とする記述法が最小だと知られているから、e進数が理想となる。それに近い整数は2か3だけど、e≒2.73より3の三進数が数学的には最もコストが小さい。
ただ、歴史的な理由でコンピュータは2進数が使われており、3進数のアルゴリズムを再開発するよりも、そのまま2進法を利用しているって言うのが実際のところ。
7進数(曜日)、12進数(月・十二支)、60進数(時間・暦)なんかは2進数と変換の親和性低いから、「2進数が数学的に他の進数との親和性が高い」というのは飛躍しすぎ。例示した4,8,16...はいずれも2^n進数だから、親和性が高いと言うより、2進数の拡張と捉えた方が自然だと思う。
s/どおし/どうし/
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
なぜ1024なのか (スコア:2)
コンピュータサイエンスの世界では2進数、8進数、16進数との親和性がとても良い。
初期のCPUにはヘンテコなbit数のレジスタ等を持った切りの悪いものもありましたが淘汰されました。
いまはほぼ以下のような感じでほぼ統一してbyte、word等々を実装されている。
1byte = 8bit
1word = 2byte = 16bit
1long word = 2word = 4byte = 32bit
1quad word = 4word = 8byte = 64bit
上記の様にを2進数、8進数、16進数と親和性がとても良いのは察しがつきますか?
で、このまま数をデカクして行くと1KiB=1024Byteとした方が数字として扱いやすいのです。
1024(10進数) = 400(16進数) = 2000(8進数)
人が10進数を好んで使ってきたのはたぶん指の数でしょうね、でも10進数って数学的に見ると意外と切が悪くて扱いづらいですよね。
人間の片手の指の数が4本か8本だったら良かったのにwww
Re: (スコア:0)
> 人が10進数を好んで使ってきたのはたぶん指の数でしょうね、でも10進数って数学的に見ると意外と切が悪くて扱いづらいですよね。
数学的にキリが悪い例を具体的に教えてください。
#個人的には片手6本の両手で12本が良かったんじゃないかと思う。
#2,3,4で割れるし。
Re:なぜ1024なのか (スコア:2)
> 数学的にキリが悪い例を具体的に教えてください。
1つの”○○進数”内で完結している話であれば具合が悪くない。
ところがA進数からB進数、C進数と進数を変換する場合に、2のN乗”進数”どおしでは親和性がとても高いのは理解できますか?
そしてコンプピュータの世界では基本2進数なのですがコレは人間から見ると大きな数を扱いにくいモノです。
先に挙げた例に追加して1024(10進数)を2進数で表すと10000000000(2進数)となり桁が多くて人間から見ると扱い辛いですよね。
そこで2進数と親和性の高い8進数、16進数に置き換えて扱うことが行なわれています。
2進⇔16進変換は慣れると簡単なことは使ったことがある人には分かるはずです。
そしてコンプピュータの世界では基本2進数、16進数を10進数に変更するのは結構大変です。
数学的にキリが悪いというのは他の進数との親和性が低いことを意味します。
Re: (スコア:0)
それは「数学的」にではなく「(電子)コンピュータ的」の誤解じゃないかな?
算術コストはネイピア数を底とする記述法が最小だと知られているから、e進数が理想となる。それに近い整数は2か3だけど、e≒2.73より3の三進数が数学的には最もコストが小さい。
ただ、歴史的な理由でコンピュータは2進数が使われており、3進数のアルゴリズムを再開発するよりも、そのまま2進法を利用しているって言うのが実際のところ。
7進数(曜日)、12進数(月・十二支)、60進数(時間・暦)なんかは2進数と変換の親和性低いから、「2進数が数学的に他の進数との親和性が高い」というのは飛躍しすぎ。例示した4,8,16...はいずれも2^n進数だから、親和性が高いと言うより、2進数の拡張と捉えた方が自然だと思う。
Re:Typo (スコア:0)
s/どおし/どうし/