- 締切済み
Windowsのファイルサイズの接頭辞は2の累乗か
Windowsのエクスプローラなどで表示されるファイルサイズは KB、MB、GB などですが、 この接頭辞のK、M、Gの意味はそれぞれ2^10、2^20、2^30になっています。 なぜこの接頭辞を使う必要があるのでしょうか。 ビットシフトするだけで計算できて高速に計算できるからと聞いたことがありますが、今の時代その必要はないと思います。もっと無駄に思える処理がたくさんありますし、メモリだってガシガシ使っています。 今更そんなことに気をつかう必要があるんでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Tort_Capa
- ベストアンサー率21% (19/88)
コンピュータ業界とコンピュータ利用者達の慣習に従っているから2の累乗を使用しているのです。 マイクロソフト社は、ソフトウェアの互換性と業界・利用者の慣習を重視してきたのでWindowsを普及させることに成功してきたのです。(最近は旧製品との互換性・サポートを切り捨てるようなことをしているので、古くからの利用者(私を含む)がマイクロソフト社を見限ってLinux系OSへと移行していますが…。) 慣習なんて関係ないという利用者のために、オプションで設定すれば「2の10乗」か「10の3乗」かを選択できるようにすれば良いのにね。
- kngj1740
- ベストアンサー率18% (197/1052)
メモリ容量はH/Wの構造上2のn乗になります。ファイルもメモリに読み込んで使用されるので、2のn乗で表現したほうが便利だからです。その証拠にHDDの製造業者はHDDの容量を10のn乗で表しています。 10のn乗のほうが容量が少し多いように見えますから。
- vaidurya
- ベストアンサー率45% (2714/5983)
それが、コンピューター的に正しいからです。 コンピューターの中は、ニューロコンピューティングが来るまで 厳然として、2進数で処理しています。 十進数で切りがいいなんて理由で、内部の処理を変えるなんてありえない。 たとえば、HDDのセクターやクラスターには512とか2048とか4096とか出てくるし グラフィックも、16777216色だし、文字コードは8bytesや16bytesだし 「十進数で切りがいいほうが良い」という根拠がそもそも無いんじゃないかと思います。 たとえば…HDDの空き容量と、保存できるファイルの量を計算をするとします。 それこそ、クラスターギャップを勘案する必要があるので、2の累乗で考えるほうが自然です。 メモリー消費の計算も、ページングの単位が、2の累乗ですしね。
お礼
回答ありがとうございます。 疑問が解決しないので長くなってしまいました。 > それこそ、クラスターギャップを勘案する必要があるので、2の累乗で考えるほうが自然です。 このことと、接頭辞を2^(10*n) にすることにどんな関係があるのでしょうか。 (詳しくは分からないので)仮にサイズとクラスタサイズのビット和でディスク上のサイズを求めているとしても、KB,MB,… の値までビット演算(シフト)によって求める必要はないですよね。 他にも例を上げて頂きましたが、同様に内部でどのような計算をしていたとしても、構造がどうなっていようと、最終的に表示する単位を 2^(10*n) になければならない理由にはならないと思います。 なぜ、10^(3*n) で表示したほうがよいと思うのかですが、 単純に単位変換しづらいからです。 例えば 13243MB 空き などと表示されているところに 13,886,291,968B のファイルが入るかどうか、すぐに判断できません。(実際は入ります) もし、Mの意味が2^20ではなく10^6ならば、このようなことは起きません。単位が違っても、入るかどうか計算する必要がないです。 単位が統一されていないと、瞬時にどちらが大きいのか分からない場合がある、空きスペースに入るのかわからない。どれだけ削ればよいのかも計算しないと分からない。 逆に2^(10*n)でないと困る事ってどんなことがありますか? 思いつくのは、2^(10*n) と 10^(3*n) を同じ接頭辞で使うことで混乱が起きるということですが、それはHDDの販売時の単位とOS上での単位の関係からも分かるように既におきていることです。 すでに、Windowsなどを使う時だけ、KやMの意味が違うことで難しくし混乱させているのです。 むしろ意味が違うことを知らない人のほうが多いと思います。 それなら、コンピュータ側が一般的な接頭辞の意味に歩み寄ったほうが良いと思うのです。 OSであればすべての計算方法を変えてしまえば、それで済むことだと思ってしまいます。 ファイルブラウザ上でのMBの意味を10^6にしたら、メモリ消費量表示のMBの意味も10^6にすれば良いのですから。 もちろん、アプリ毎に別の意味を使う可能性はありますが、すでに混乱していることです。今更です。
- edomin7777
- ベストアンサー率40% (711/1750)
回答にはなっていないかもしれません。 > Windowsのエクスプローラなどで表示されるファイルサイズ これは、あくまでも「使用者」に対する表示です。 37GB 39728447488Byte どっちが見やすいですか?
お礼
回答ありがとうございます。 それでは39GBと表示すればよいのではないですか。 この39728447488は 2^30=1073741824 の倍数になっているので"きりが良い"とある意味では言えますが、 実際はこんなふうにはならないことがほとんどです。 ファイルのサイズはファイルシステムのクラスタサイズの倍数になっているだけです。 これなら、39GBと表示してもわ見やすいといえますよね。
お礼
回答ありがとうございます。 具体的にどう便利なのでしょうか。 メモリ容量が2^nになっていて、それが大きくなったとき、2^(10*n) が1000に近かったので KやMやGを使い表現したという点については理解できます。 でも、それを実際に使う時、この単位は具体的にどのように便利なのでしょうか。