コンピュータにおける1byteは何故8bitなのか? 何故キリがいい10bitじゃなかったのか?|ソウ

您所在的位置:网站首页 8bit=1b コンピュータにおける1byteは何故8bitなのか? 何故キリがいい10bitじゃなかったのか?|ソウ

コンピュータにおける1byteは何故8bitなのか? 何故キリがいい10bitじゃなかったのか?|ソウ

2024-05-11 14:11| 来源: 网络整理| 查看: 265

先日Twitterのタイムラインにタイトルのようなツイートが流れたきました。

面談で未経験なのに経歴盛り盛り詐称を洗い出す究極の質問を編み出した。

「1byteは何故8bitなのか?」「何故キリがいい10bitじゃなかったのか?」

これ即答出来る人に未経験はまずいない。そしてしっかり基礎から学んでると即答出来る。

— SEライダー (@Sys_Rider) January 31, 2022

これに対して私は次のように引用RTしました。

標準化当時のシリコンやら扱うデータサイズやらで決めたんちゃうの。知らんけど https://t.co/HANlnUMCmz

— ソウ💻 (@soh_0001) February 2, 2022

コンピュータサイエンスを学んできた中で、経験則的に答えたのですが、この命題に対してしっかりと調べてみるのも面白そうだと思いました。

有力な回答 文字コードのデータに合わせた

これに関してはTweetもとの人が回答しています。私もほぼ同意見です。

2008年にISOなどで1Byte=8bitに定義された由来ですが、アルファベットの大文字小文字と数字を表現するには64パターン(6bit)必要。そして記号を含めると1bit足して7bit必要。

最後にパリティビットを足して8bitになりました。

— SEライダー (@Sys_Rider) February 1, 2022

コンピュータで文字を扱う場合、ASCIIという文字コードが使われていました(今は殆どUTF-8)。この文字コードは整数記号合わせて7bit必要です。あとはパリティビットというビット列が偶数か奇数かを判断するビットを加えて8bitであると。

この回答が最も多くの人に納得感を与えると思います。しかし少し別の視点から見る人だと、もっと足して1byte = 10bitでもいいだろう。その方が沢山データを持てるし計算が楽だ、と思われる方もいるかも知れません。それについても諸説ありますが回答してきます。

そもそも2進数でなければならない理由

1byte = 8bitというのは「2のべき乗かつ8の倍数」と定義できます。したがって、CPUなどのプロセッサも基本的には16bit、32bit、64bitと進化してきました。

この定義の前提にはコンピュータの計算最小単位が2bitである点が重要だと言えます。現代のコンピュータは基本的に2進数で動作しています。

古くは10進数で動作するコンピュータも存在しました(チャールズ・バベッジの階差機関など)が、コンピュータの進化につれてスイッチのON/OFFで表現できる2進数が主流になりました。

そこら辺の歴史はぜひこちらの動画を視聴ください。

効率よくデータを扱うため

ここで前述した「1byte = 10bitでもいいだろう」説に対する反証です。この考えは、我々人間が10進数を基本としているため、1byte = 10bitの方が理解しやすく計算しやすいからです。

他方でコンピュータは2進数を基本としています。人間と同じ理屈で、自分の基本としているいる進数をベースに考えたほうが計算効率がいいのです。

実際に2進数であれば、bit列を横にスライドさせるだけで計算が可能になるため、非常に計算が楽になります(コンピュータ視点なら)。

bit列をスライドさせることで、コンピュータは加算だけで減乗徐算が可能になり、構造がシンプルになります。

こういった背景の元、コンピュータで数字や文字列を扱うためにASCIIが開発され、英数記号を含めると7bit必要になり、2の冪乗である8bitに置き換えられたと考えられます。

https://medium-company.com/%E3%82%B7%E3%83%95%E3%83%88%E6%BC%94%E7%AE%97/

半導体の結晶格子

他にも都市伝説じみた説があります。それが、半導体の結晶格子が8個からなるからであるという説です。

現代のコンピュータは半導体なしでは成り立ちません。半導体の材料として使われるシリコンは、8個のシリコン原子を持つ単位格子による「ダイヤモンド構造」になっています。

この構造上最も効率よく性能を発揮できたのが8の倍数だとも考えられます。

http://fnorio.com/0138Silicone_lattice_constant/Silicone_lattice_constant.html最後に

以上が「1byteは何故8bitなのか? 何故キリがいい10bitじゃなかったのか?」という問いに対する回答になります。

最後の回答は都市伝説レベルですが、あながち無関係とも言えない雰囲気を肌感覚ですが感じました。

今の時代ここまで意識してコンピュータを使うことは稀ですが、知っておくとどこかで使えるかもしれません。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3