• 締切済み

10ビット→1バイト

ほんの思いつきです: 現行のコンピュータは、8ビットを1バイトとして成り立っていますが(ノイマン式?)、70年前に遡って、10ビット(「10進法」)を1バイトとして始めることも可能だったのではないかと思うのですが、どうなんでしょう? また、今後コンピュータが発達していく中で(50年後くらい)、「ノイマン式ロジック」を変更することはあり得ることなのでしょうか?

みんなの回答

  • SPROCKETER
  • ベストアンサー率26% (2027/7571)
回答No.9

 最初は6ビットを1バイトにする計画だったそうで、6ビットあれば、64種類の数字を表現出来るので、10進数が10種類、アルファベットが26種類で合計36種類、他は制御コードなどに使って64種類にするはずだったそうですが、もっと増やした方が良いというクレームが付いて、7ビット、さらには8ビットと増える結果になったようです。  8ビットは256種類の数字を表現出来るので、10進数ではBCDコードで00~99まで表現出来るなど、十分過ぎるほどの数値表現が出来るのですが、漢字表現には4096種類以上必要だったので、日本語表示には不向きで、8ビットパソコンは漢字ワープロには向かなかったようです。  10ビットあれば、1024種類の数字を表現出来ますが、それでも漢字表示には足りません。漢字表示するには16ビット以上必要になります。  今から振り返ってみると、8ビットではなくて、12ビットが1バイトであれば、漢字表示には最低限足りる量だったわけですし、12ビットあれば4096種類の数字を表現出来るので、RGBでは16:16:16で16諧調の4096色表示が出来ますし、 12ビットあればPCM音源でも十分な音色が出せるはずです。そういう意味では、12ビット=1バイトが理想だったわけですが、そこまで考えてなかったのでしょうね。  1バイト=12ビットで、24ビットでアドレッシングする12ビットCPUだったら、16MBのアドレス領域があるわけで、12ビットパソコンが最初から普及していたら、ずいぶん違っていたかもしれませんね。  もっとも、8ビットパソコンでも、実は贅沢だと呼ばれていたわけで、4ビットパソコンが普及していても不思議ではありませんでした。実際、4ビットCPUがありましたし、4ビットでも16種類の数字を表現出来るので、10進数は表現出来たわけです。  8ビット=1バイトという規格は定着しているので、今さら変える事は出来ません。技術的な混乱を生むだけです。

e-toshi54
質問者

お礼

ご説明痛み入ります。 「今更変えることは出来ません」という固定観念への疑問がこの質問の動機です。

noname#242220
noname#242220
回答No.8

アナログ計算機の時代なら10進数も有り得ましたが。 デジタル計算機はその昔『リレー計算機』から始まっています。 ですから『2進数』で計算するのが得策だったです。 メモリ容量だって数百バイトしかなった。 データと命令を待って処理するのが『ノイマン式』 現在では3進数での計算が研究されている様です。

  • okwavey2
  • ベストアンサー率15% (251/1593)
回答No.7

ビットは2進数の桁数のことだと思うのですが、何桁にしても2進数は2進数にかわりがなくて、十進数になることはないと思うのですが、何を思いついたのでしょうか。 逆に言うと、2桁の十進数は二進数になるのか?みたいなことだと思いますが、10~99のことで、バリバリ10進数ですね。

e-toshi54
質問者

お礼

書き込み有難うございました。 「10進法」と挿入したのは勘違いでした。

  • dragon-man
  • ベストアンサー率19% (2701/13654)
回答No.6

十進法と10バイトはまったく関係ありません。ノイマン方式(ロジックではありません)もまったく別の概念(ストアドプログラム方式)でビット数とは関係ありません。 初期のコンピュータは48ビット、もしくは36ビット単位でした。IBMが360システムを作ったとき8ビットを単位にしたので(正確にはパリティビットを入れて9ビット)そうなっているだけのことです。

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.5

8ビットを1バイトとしたのは、フォン・ノイマンではないと思いますが、 穴が空いている・空いていない、光ってる・光ってない、石がある・ない、電気がある・ない、白・黒、などいずれにしてもデジタル計算は二つの状態を表す、二値が都合が良かったので、2進数が基本となったのでしょう。 また2進数は、3bit で8進数に、4Bitで16進数に変換し易い利点もあります。演算器を作るにも、回路を作るにも、その昔は歯車式計算機もありましたが、2,8,16進数の方が実現手段が容易だったのでしょう。 デジタル式のコンピュータでは、2進数から変ることは先ずないと思いますが、全く異なる構造のコンピュータ(例えばアナログコンピュータなど)が普及すれば、変ってくるかも知れませんね。

e-toshi54
質問者

お礼

ご意見ありがとうございました。

noname#255857
noname#255857
回答No.4

集積回路は、結局電気が流れてるか流れてないか(1か0か)で 情報を判断するので2進数のほうが無駄が少ない。 もし10進数なら計算機はイコールボタンを推してから 答えが出るのに1秒かかり、ファミコンは動作が重く、 宇宙進出は何年も遅れていたかもしれない。

回答No.3

10bitがなにゆえ、10進法になるか私には理解できない。 10bitで10進数の一桁を表すというのか? IBMなどは、4bitで10進数の一桁を表す2進化10進数を長らく採用していた。

e-toshi54
質問者

お礼

書き込み有難うございました。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.2

10だと人間には都合がいいですが(無意識のうちに十進法を使っているから)、 二進法を使うコンピューターにはあまり都合がよくなさそうに思います。 2^n = 10 のnが整数にならないから。

e-toshi54
質問者

お礼

書き込み有難うございました。

  • ballville
  • ベストアンサー率47% (233/487)
回答No.1

>10ビット(「10進法」) とわざわざ断り書きが必要になるわけです。二進数の世界で構成するなら、 「1010」(2進4ケタ)を使うより、2進3ケタの「100」(8)を採用したほうが、草創期のコンピュータにとってリソースが軽く済んだと思われます。 とはいえ、草創期には1バイト=8ビットでないマシンもたくさんありました。ただ、上記の理由で現在まで生き残っているものはないようです。 http://diode.matrix.jp/LEGEND/BYTE.htm

e-toshi54
質問者

お礼

書き込み有難うございました。 「10進法」と挿入したのは勘違いでした。 これからコンピュータもより発展していくためには、何か根本的な部分を変えないといけないのではないかというのが質問の発端です。

関連するQ&A

  • いつからビットからバイトに?

    いつもお世話になっております。 最近のメモリやストレージの容量はバイト(byte)で 表されますが、昔はビット(bit)が一般的だったと思います。 PC88や98、windows95時代からメモリやHDDの 数値のインフレ具合を見ていましたが、 バイトに切り替わったタイミングで、同じ性能なら 数字は8分の1になると思います。 しかしそんな時期があった気がしません。 あ、もちろんプロセッサの事じゃないですよ? 1バイト=8ビットというのは意外にも2008年になるまで 正式に定義されてなかったようですがその辺りでしょうか? もう少し前からバイトが一般になってた気がしますが...。 それともフロッピーディスク時代に 私が100MBのHDDをいち早く手に入れてイキってた時、 既にMBのBはバイトだったのでしょうか? 少なくともファミコンソフトの容量は「大容量4メガビット!」 とか謳ってたと思うのですが...。 ずっと勘違いしてたのなら恥ずかしいです。

  • 夜勤のガソリンスタンドバイトの年令制限

     現在34歳です。  ガソリンのタンクローリーの仕事を目指していることもあり、危険物乙4の勉強をしています。    タンクローリーの仕事でも使うということもありますが、老後の再就職として夜勤のガソリンスタンドを考えてまして、できればの70歳から80歳くらいまでやりたいと思ってます。    ガソリンスタンドの夜勤って年齢制限があるのでしょうか?  今後、コンピューターの技術の発達などで、夜勤のバイトは要らなくなる時代がやってくるのでしょうか?    

  • PHPで~を使うときのビットの認識の仕方について

    ~演算子を使用する際の、ビットの認識のされ方についてなのですが ~演算子の動作がよく理解できなかったので、色々試してみたところ、以下のような感じでした。 ~1 = -2 ~0 = -1 ~37 = -38 この結果から色々逆算してみることにしました。 例えば-38ですが、この-38はコンピューター上では2の補数のビット列で構成されているはずで、そのビット列は 1000000(2)-100110(2)(=38) という式の答えに、最上位ビットに識別子「1」をつけたビット列であるはずです。 つまり、-38のビット列は1011010(2) ということになると思います。 で、この1011010(2)というビット列は、~演算子によって生成されたものなので、反転される前は 0100101(2) というビット列だったということになると思います。 この 0100101(2) は10進表記に直すと37(10)となるので、 冒頭の~37 = -38 が証明されたことになると思います。 ただ、1つ気になるのは、反転される前のビット列が0100101(2) という、最上位ビット列に0が付けられたビット列として認識されているということです。 37の2進表記は一番簡単に考えれば100101(2)ですが、このビット列でビット反転させると、1011010(2)(=-38)ではなく011010(=26)というビット列になってしまい、、-38になりません。 ~1 や ~0 の場合でも同様で、最上位ビットに0が付いてないと仮定すると、辻褄があわなくなります。 冒頭の通り、~37は-38を返すので、評価したビット列は0100101(2) であるはずです。 上記のようなことから、PHPの~を使用する場合、評価されるビット列は必ず最上位に0が付されるという結論に至ったのですが、この理解で正しいでしょうか? わかりにくい文章ですいません。 どなたか詳しい方いらっしゃいましたらご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • バイト配列を別名で扱う方法

    VisualBasic2008 ExpressEditionにてPLCと通信するアプリケーションを作成しています。 受信したデータは、Publicなバイト配列に格納されています。 Public Dat(63) as byte 'こんな感じです 内容は、ビット単位と32ビット符号付き整数があります。 ビット単位は、And演算子にて判定し32ビット符号付き整数は、BitConverter.ToInt32にて数値化して使用しています。 この方法だとコードが煩雑で可読性が悪い状態です。 質問ですがこのバイト配列変数を別名で参照し扱う事はできますか? たとえばDat(2)の3ビット目を"exp"と別名で宣言しコードの中で扱いたいです。"exp"に変更を行うとバイト配列も変更されて欲しいです。 上司が以前のバージョンにあったような気がすると助言してくれたので調査しています。 私が調べた限りでは、見つける事ができず最も適していると思われるのはクラス化でした。 アドバイスお願い致します。

  • 夏休みにやるおいしいバイト

    こんにちは。 大学1年の女なんですけど、夏休みにがんがん稼げてできるだけ楽で楽しいバイトを探しています。 今は家庭教師を週2でやってて、そのバイトは充実してて今後も続ける予定なのですが、それだけじじゃ、お金たまらないので…。 今のところ、居酒屋かデパートの中かなにかがいいかなとか考えてるのですが、なにかおいしいバイトあったらぜひ教えてください。やめたほうがいいバイトもぜひ。朝早いのは、控えたいです"^_^"

  • コンピュータの質問です。

    コンピュータの問題がわかりません。 問 次の問いのnは数31765を表す   (1) 何ビットあれば、n個の状態を区別できるか。   (2) nを2バイト長の2進法に変換し、さらに16進表記せよ。 いろいろ参考書を見たのですが、   (1) これは参考書と同じ問題がり、15ビットということだけしかわかりませんでした。しかも解説がなくなぜ、15なのかがいまいちよくわかりません。  (2) 31765 = 0111 1100 0001 0101     このようにnを2バイト長の2進法に変換しというところまではできましたが、そのあとの16進表記せよがわかりません。 だれか教えていただけませんか。  よろしくお願いします

  • ビットコインのバブル終焉

    ビットコイン含めて仮想通貨バブルは今後、終了して下がって行くと思います。 特に2年前に60万円のビットコインも今年10倍越えて700万円にいきました。 それから下がって今は400万程度ですが今後は上げ下げしながら100〜150万までは下がると予想しています。 イーロン・マスクの発言で上げ下げしていますがビットコインに貨幣の価値は無いと言って支払い拒否の時点で終わりでしょう。 コロナが終焉に向かうにつれてアメリカの金利が上がってダウ、日経、仮想通貨は下がって行くと思います。 アドバイス頂けると助かります。

  • バイト 急にミスが増えた

    ファストフード店でバイトをしている大学生です。 このバイトを始めてから、今年で4年目になるのですが、ここ1,2週間の間に立て続けにミスをしてしまっています。 それも、これまでにしたことのないようなミスです。 具体的には、短期記憶が出来ていないが故のミスが多いです。 例えば、袋に詰めようと思って目の前に置いておいた商品を、最後の最後で入れ忘れてしまったり、聞いたばかりのオーダーの内容を忘れてしまったりといったことです。 これまでだったら、当たり前にというか、無意識のように出来ていた仕事が、今ではどれだけ意識しても、何かしら抜け落ちてしまっているような状態です。 思い当たる原因としては、最近、文字を読んでも集中出来ずに内容が入ってこないことが多く、この質問を書くのも、結構一苦労だったりするのですが、集中力が落ちているのでしょうか。 11月頃に辛い出来事が重なって、かなり落ち込んでいた時期があったのですが、今は立ち直ってとても元気なので、メンタル的におかしくなっているとも思えません。 一度起こしたミスに対しては、二度と起こさないようにとても注意しているので、同じミスを繰り返すことはないのですが、次から次へと思い付きもしなかったミスをしてしまうので、毎日怖いです。 今までの3年間、ミスが絶えなかったのであれば、自分はこの仕事に向いていないのだなと思えるのですが、こんなにミスするのは4年目にして初めてのことなので、どうしたら良いのか分かりません。 今後もシフトが続くのですが、入るたびにミスをしてしまうので、正直入りたくありません。 バイトの中でもかなりベテランの域に入るのに、最近の私は新人の方よりもミスが多く、とても情けないです。 そんなつもりはなくても、無意識のうちに慢心して注意力が欠けてしまっているのでしょうか。 もうこれ以上私のミスで周りに迷惑を掛けたくないです。 今までしたことがないミス、想定外のミスが続いてしまうとき、どのように立て直したら良いのでしょうか?ま

  • バイトの時間について

    自分はニートをしていて初めてバイトを始めました 通信高校に通いながらで扶養内で働いてます 最初は半日でもきついかなと思い週4日5時間にしました 今1年ぐらい続いていて週3日の8時間にして今後のために8時間になれようと思い変更しようと思うのですがどう思いますか? 88000円以内にはなります 給料も2万円ぐらい違うので変更して頑張りたいのですがそれを会社の人に言うのが緊張します 一緒に働いてる人は時間とか変更できるとは言ってました 倉庫系の仕事です

  • バイトの終わり方

    高校2年生です。私はコンビニでアルバイトをしている?のですが、 バイト中にストレスのあまり過呼吸になって倒れ、救急車に運ばれました。 そのこともあってバイトに行きたいという気持ちが完全になくなり、バイトのことを考えると憂鬱になります。病院へ搬送後の連絡で、店長から1週間休みなさい、そのあと電話してきて下さいと言われました。 そのときに医者から勤務を続けるのは難しいと告げられた、ということを店長に伝えました。そのとき店長は私もそう思う、と言っていました。 その1週間後、どうしてもバイトを辞めたいと伝えたところ、 「お金をもらうという立場なのに認識が低い」「契約は1か月前に辞める意思を伝えなければならない、となっているのにどういうことだ」「せめてあとのシフトは入りなさい」「今後の将来が心配だ」などと嫌なことを色々言われました。 精神的にもすごく辛く、病院に搬送されたという事実があるから、と今後の勤務は不可能です、と言いました。契約内容(1か月前に辞める申し出をすること)を破ってしまうのは、本当に良くないこととは思いますが、今後勤務したとしても健全でいられる確信がもてません。 倒れた私も悪いのですが、そんなことを大したことだと思っていない店長はどうなのか、とも思ってしまいます。 そして店長は怒りながら、じゃあ1週間後、退店する手続きをする日を決めるからと言って電話を切られました。 私は間違っていたんでしょうか… 実情を言いますと、他のシフトの方は週3回くらいなのに私は週5回でした。 他の人が入りたがらない時間帯に1人でレジをすることもありました。 ですから、私が突然行かなくなると他の人に迷惑をかけてしまうのです。 それでもバイトができる状況ではないので、自分のしたことが正しかったのか、未だに自信がもつことができません。