プロが教えるわが家の防犯対策術!

1GBは1,024MBと言うのは何故ですか?

A 回答 (7件)

> 何故2の10乗、20乗、30乗なのでしょうか?


それはそうした方が便利な場面があるからという
利便の面からの理由だけです。
(便利な理由は2進数表記できりがよいから。)

数え方が違うというより、
1000を表す接頭辞と1024を表す接頭辞に同じ記号(k)を使ってしまっている、
という方が近いと思います。
そのせいで区別がつかなくて紛らわしいですが、
1000を表す接頭辞kと、1024を表す接頭辞kは
見た目が同じだけの別物と考えましょう。

これが紛らわしいので、ANo.2で示したように、1024を表す接頭辞にはKiを使って
1000を意味する接頭辞kと使い分けようという動きがあります。
    • good
    • 0
この回答へのお礼

Wernerさん、ようやく分かってきたような気がします。接頭辞と言う言葉は初めて聞きましたが、少し理解できます。是非Kiと言う単位が普及して欲しいですね。
ありがとうございました。一段とパソコンに詳しくなった気分です。

お礼日時:2008/07/10 00:25

#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などの表記が普及して欲しいですね。
ありがとうございました。

補足日時:2008/07/10 00:26
    • good
    • 0

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の何乗かですよね。

補足日時:2008/07/09 22:19
    • good
    • 0

上が10進数/下が2進数


・K
10^3
2^10
・M
10^6
2^20
・G
10^9
2^30
だからです。

この回答への補足

すみません、何故2の10乗、20乗、30乗なのでしょうか?

補足日時:2008/07/09 21:41
    • good
    • 0

#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なのか、今一良くわからないのです。

補足日時:2008/07/09 22:02
    • good
    • 0

このページが参考になると思います。



2進接頭辞 - Wikipedia
http://ja.wikipedia.org/wiki/2%E9%80%B2%E6%8E%A5 …
    • good
    • 0

パソコンの内部では2進数が使われています。

普段の生活で使っている数字が1桁0~9まである10進数なのに対して、2進数では1桁が0と1の2つです。
10進数では1桁桁上がりすると10倍になりますが、2進数では1桁桁上がりすると2倍になります。このため64、128と2倍ずつ増えています。
それが1024となるわけですね。

この回答への補足

ご回答ありがとうございます。2進数は分かりますが、ギガとメガの関係はどう考えればよいのでしょうか?

補足日時:2008/07/09 21:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!