- ベストアンサー
1ギガバイトは何メガバイトでしょう
1GBは1,024MBと言うのは何故ですか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> 何故2の10乗、20乗、30乗なのでしょうか? それはそうした方が便利な場面があるからという 利便の面からの理由だけです。 (便利な理由は2進数表記できりがよいから。) 数え方が違うというより、 1000を表す接頭辞と1024を表す接頭辞に同じ記号(k)を使ってしまっている、 という方が近いと思います。 そのせいで区別がつかなくて紛らわしいですが、 1000を表す接頭辞kと、1024を表す接頭辞kは 見た目が同じだけの別物と考えましょう。 これが紛らわしいので、ANo.2で示したように、1024を表す接頭辞にはKiを使って 1000を意味する接頭辞kと使い分けようという動きがあります。
その他の回答 (6)
#3です >1ギガバイトが何故1024MBなのか 人間が管理するため1000区切りにしたかったのですが2進数ベースでは 論理的にも物理的な実装にも無理もしくは無駄が生じるので1000に近い 2進数的にキリの良い数字1024(2^10)をKと定めたからです。 以降は 1024KB = 1MB …キロに関してはk(10進)、K(2進)と区別する慣習がある 1024MB = 1GB 1024GB = 1TB … となっています。 GBやTBになってくると10進数との乖離が激しくなる事やSI単位の普及もあり、 2進数用の単位Ki,Mi,Gi,Tiなどが策定されましたが普及には至っていません。 (#2さんの紹介しているリンク先参照)
補足
hanshiroさん、ありがとうございます。#2さんのWikiを良く読むとなんとなく分かった気がします。結局私のような素人にはかなりファジーな世界す。バイナリーだとかヘキサデシマルだとかややこしいです。早くにKi,Miなどの表記が普及して欲しいですね。 ありがとうございました。
- kosky12
- ベストアンサー率0% (0/2)
1GB(ギガバイト)は10進数で10億バイトです。一般的に、 1KB(キロバイト)は1、000B、 1MB(メガバイト)は1,000KB, 1GBは1,000MBとなります。 つまり、10進数で3桁区切り(千倍毎)に付けられた単位です。 しかしながら、デジタルの世界では情報の最小単位をビットと言いますが、 ビットとは例えば電気のプラスかマイナス、ONかOFF、磁気のSかNなどの 2種類の状態を表すため、数値としては2進数として扱われます。 1024と言うのは2進数で 10,000,000,000 と書かれた値を 10進数に換算すると2の10乗=1024と言う訳です。 (この11桁の値を2進数で数えるには右から0.2.4.8.16.32.64.128.256.512.1024と11桁分読みます) つまり、1バイトは8ビットですから、この数字は8ビット(数値としては8桁)の 1,000倍なので、1KBと言い、2進数では1,024と言う値となるわけです。 問題はここに考え方の相違が生じてることです。 8ビットの1,000倍は8,000ビットですよね。ところが8桁の2進数値 10000000 を1,000倍するのに ゼロ3個を加えると、10,000,000,000 となり、10進数では10億(1G)、2進数では1,024と 言うことになります。 つまり、2進数の8桁を10進数で1,000倍(3桁プラス)しているという矛盾があるので、 1GB=1,024MBと言う人がいるのです。 桁数とその桁数で表せる数値、2進数と10進数とがごっちゃになっているんですね。 従って、バイトを数えるのはあくまでも10進数なので、1ギガバイトは1,000メガバイトで 良いのです。 注)実際にパソコンなどの中を流れる信号はビット単位ですから、1キロバイトは8,000ビットで、 これを数値の桁数と考えると8,000桁ですからとても人間の頭で考えられる範疇では有りません。 そのためにバイトと言う単位が設けられ、8ビット(1バイト)を16進数として技術者は扱います。 16進数を扱える電卓があるのもそのためなのです。
補足
詳しくありがとうございます。でも、分かったようで分からないです。一般的と言うのとパソコンの世界とでは数の数え方が違うと言うことでしょうか? 1キロメートルとかメガトンとかは10の何乗かですよね。
- gon987
- ベストアンサー率16% (53/312)
上が10進数/下が2進数 ・K 10^3 2^10 ・M 10^6 2^20 ・G 10^9 2^30 だからです。
補足
すみません、何故2の10乗、20乗、30乗なのでしょうか?
#1さんと#2さんで言い尽くされている気はしますが…(^-^; コンピュータは2進数で制御されています。 このためコンピュータにとってのきりの良い数字は2乗数になります。 しかし人間が使う以上、人間の使う10進数に近い方が管理しやすいため 10進数の1000に近い1024(2の10乗)を便宜上1000と同じ単位系で扱いました。 何故かと言えばこんな事です。 例: どのくらいキリが良いかというと… (10)…10進数表現 (16)…16進数表現(2進数表現だと面倒なので) 8bit(1byte)で表現できる整数 0~255(10) = 00~FF(16) : 2^8 16bit(2byte)で表現できる整数 0~65535(10) = 0000~FFFF(16) :2^16 100(10) = 0064(16) 128(10) = 0080(16) 256(10) = 0100(16) 500(10) = 01F4(16) 512(10) = 0200(16) 1000(10) = 03E8(16) 1024(10) = 0400(16) 余談: ディスク容量やメモリ容量はB(バイト)で表現しますが、半導体や通信速度の 単位はb(ビット)で表現します。 ADSL 40Mって書かれていたら単位はbps(bit/sec)となり、バイトで表現すると 5MB/secになります。
補足
ありがとうございます。ヘキサは分かるのですが、1ギガバイトが何故1024MBなのか、今一良くわからないのです。
- Werner
- ベストアンサー率53% (395/735)
このページが参考になると思います。 2進接頭辞 - Wikipedia http://ja.wikipedia.org/wiki/2%E9%80%B2%E6%8E%A5%E9%A0%AD%E8%BE%9E
- torisabure
- ベストアンサー率13% (67/482)
パソコンの内部では2進数が使われています。普段の生活で使っている数字が1桁0~9まである10進数なのに対して、2進数では1桁が0と1の2つです。 10進数では1桁桁上がりすると10倍になりますが、2進数では1桁桁上がりすると2倍になります。このため64、128と2倍ずつ増えています。 それが1024となるわけですね。
補足
ご回答ありがとうございます。2進数は分かりますが、ギガとメガの関係はどう考えればよいのでしょうか?
お礼
Wernerさん、ようやく分かってきたような気がします。接頭辞と言う言葉は初めて聞きましたが、少し理解できます。是非Kiと言う単位が普及して欲しいですね。 ありがとうございました。一段とパソコンに詳しくなった気分です。