- ベストアンサー
メディアの計算方法について
メディアのカタログ表記を見ていていつも思うのですが、なぜ1GB=1,000MBとか、1TB=1,000GBとかで計算しているのだろうかと思います。 PCで認識される容量は1GB=1,024MB、1TB=1,024GBであり、メディアの設計もこれに合わせてしてほしいと思います。 1GB=1,000MBや1TB=1,000GBでメディア設計をしているのはなぜでしょうか?
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>当方は2TBといえば1)の「2,199,023,255,552バイト」に統一してもらいたいと思いますね。 ですから、それは感情論だと申し上げているわけです。私も、初めて個人用として買ったハードディスクが40MBのSASIだった人間ですから、容量が1024倍の単位にならないのはすっきりしないという気持ちは理解しますよ。でもそれは、俗世間の物差しから外れているということを理解しないと、この話は終わらないでしょうね。ただし1TBではなく、1TiBと書いてあるのに2^40バイトに満たないのなら詐欺で、断じて許しがたいことです。 >で、3)の「2,000,398,934,016バイト」はどのようにして出てきたのでしょうか? 日立が発売しているハードディスクのセクタ数(製品に貼られたラベルに記載された値)から計算した容量で、これを2.0TBのドライブであると称して売っています。これを2TBと定義しているわけではなくて、2.0003TBなんて半端なことになるから、単純に端数を切り捨てただけでは?別の会社の製品だと、同じ2TBであってもセクタ数すなわち容量が異なる可能性もありえるでしょう。
その他の回答 (8)
>「何故Windows上の表現方法に合わせられないのか」 先の「サイズが過小に見えるのを避ける」他に 「先発だろうが巨人だろうが、1私企業のよくない習慣に倣う義理はなく むしろ変えたいから」だと思います、私見ですが。
お礼
ありがとうございました。 PCでも1,024倍よりも1,000倍のほうが合理的なのでしょうか…
>「容量は4.3Gバイト」は動かしようのない事実ですから… Windows 上の表現方法は、と枕詞が付きませんか? >1GB=1,000MBとか、1TB=1,000GBとかで計算 これも紛れもない事実ですよね。 混在もそうだすが、キロ、メガ、ギガ...を使うには 1,024倍表現より1,000倍表現の方が いいよねぇということで、No.1で引用した「2進接頭辞」が 国際規格団体 IEC によって造られたわけなんですが。 お好みを変えてくださいとは言いません。が、どちらの表現方法がより世の中の為によいでしょうかね。
お礼
ありがとうございました。 今回お聞きしたかったことは、「何故Windows上の表現方法に合わせられないのか」ですね。
>当方は2TBといえば1)の「2,199,023,255,552バイト」に統一してもらいたいと思いますね。 じゃあ 2,000,000,000,000 バイトのHDDは 1.818989403545856475830078125 Tバイト って表示されてれば文句ないという事ですね。 1セクタ4,096バイトが不良で使用可能サイズが 1999999995904 バイトの時は 1.8189893998205661773681640625 Tバイト って表示されることになりますが、ピンと来るでしょうか。 むしろ鬱陶しいと思いますけどね。 結局「そういう表示方法が好み」っていう事だけで、どちらも 長所もあれば短所もある事ですが。 私は2TBなら2,000,000,000,000バイト「ぴったり」の方が解り易くていいと思います。 と切望しても、多少の不良な領域が残り、ここは使われないように処理されて 結局使用可能領域は少し減って、カタログ上のサイズは端数になるんですけどね。 >DVDだって、4.3GBしか記録できないのに4.7GBと表記したり、 それは 1,000倍表現のせいでなく、1,024倍と混在したせいですよ。 先に 1km=1,000m などという生活に密着したルールがあるのに、それに倣わず 異なる倍率を使ったから混在する結果になったのだと思います。 「4,700,000バイト記録できる」のに「容量は4.3Gバイト」と表現するより 「容量は4.7Gバイト」の方が数字が同じでスムーズだと思いますけどね。
お礼
ありがとうございました。 愚痴になってしまいましたが、メディアの表記や製造は全て1,024倍で行ってほしいのに、それができないのはなぜだろうという質問です。 4,700,000,000バイトは約4.377GBですので、「4,700,000,000バイト記録できる」のに「容量は4.3Gバイト」は動かしようのない事実ですから…
補足
>じゃあ 2,000,000,000,000 バイトのHDDは1.818989403545856475830078125 Tバイトって表示されてれば文句ないという事ですね。 正確には、2TBのHDDは未フォーマット状態で2,199,023,255,552バイトあれば文句ないという事です。
2TBと書かれていた場合、それが次の3つのいずれであっても正しいです。それが納得できないと言われても、どうすることもできません。あいまいな定義のせいで起きてしまった感情論ですから。 1)2,199,023,255,552バイト 2)2,000,000,000,000バイト 3)2,000,398,934,016バイト だからこそNo1の回答者さんの指摘にある、2TiBといった記述方法ができたわけです。1MHz=1,000,000Hzなのに1MB=1,048,576Bという、複数の解釈があるのは単位系として好ましいことではない、いや、異常であるとさえ言えるでしょう。 Windowsもオプションか何かで、表示する単位系を2進とSIで切り替えられるようになっているか、ハードディスクメーカーが「2.0TB/1.9TiB」などと表示してくれればっていう対策案もありますね。
お礼
ありがとうございました。 当方は2TBといえば1)の「2,199,023,255,552バイト」に統一してもらいたいと思いますね。 で、3)の「2,000,398,934,016バイト」はどのようにして出てきたのでしょうか?
- Gotthold
- ベストアンサー率47% (396/832)
> PCが2進数でしか数を表せない以上、1,000倍での統一は物理的に困難です。 > 1,000倍で統一となれば、基礎から多大な費用と時間をかけて開発しなおさねければならないと思われるため、1,024倍を変えるのは非常に難しいのが実情です。 今まで 1,048,576 Byteのことを1MBと表記していたのを、 1MiB または 約1.05MB と表記すればすむ話です。 これは技術上の話ではなく、単位をどのように表記すれば便利かという便宜の問題。 あと、容量が2の累乗に強く縛られるメディアって、 アドレスビットをフルに使い切る必要がある半導体メモリくらいで、 HDDとかにとっては結構どうでもいい話です。 (フラッシュメモリの見かけの容量の切りが悪いのは予備領域が見えない為で メモリチップ自体はちゃんとぴったりの容量になってる。)
お礼
ありがとうございました。 当方は、HDDもプラッター自体がちゃんとぴったりの容量になっているのが本来あるべき姿だと思います。たとえば2TBのHDDなら、未フォーマット状態で2,199,023,255,552バイトあるべきだと思うのに、どうしてそうしないのか、どうしてそうできないのかが気になっているのです。
>PCが2進数でしか数を表せない以上、1,000倍での統一は物理的に困難です。 >1,000倍で統一となれば、基礎から多大な費用と時間をかけて >開発しなおさねければならないと思われるため、 意味不明です、そういう理解なら質問は何?って事でもあり。 1,000 倍かどうかは人間が目にする祭に長ったらしい数字列を省略する為の表現方法で PC内部(といってもどこのレベルを指すか、にもよるが)では無縁です。 >PCが2進数でしか数を表せない以上、 そもそも、そんな事もありません。画面上に10進数表示はしてます。 回路内のデジタル信号1本は2進数だけですが 4本を16進数と見るほかBCDで10進数とも見る事も可能です。 かつて7セグメントLEDを点灯させる回路はBCDコードが多用されました。 質問の意図がわからなくなりました。
お礼
ありがとうございました。 質問の意図ですが、アンフォーマット状態で500GBなら536,870,912,000バイト、3TBなら3,298,534,883,328バイトで設計してほしいということです。 DVDだって、4.3GBしか記録できないのに4.7GBと表記したり、7.9GBしか記録できないのに8.5GBと表記するやり方にどうしても納得できないのです。 PCが10進数を扱えるにせよ、未フォーマット状態でカタログ・パッケージ通りの容量分あるのが本来あるべき姿だと思います。
結局何だかんだ言っても、容量の値が大きく見えた方がいいというマーケティング的な理由になっちゃうんじゃないですか?SI単位系では、K=1,000倍・M=1,000,000倍であることは事実ですし、2のべき乗に合わせているPCの方が(いくら歴史的理由があるにせよ)SIに従っていないのだとも言えます。それにHDDの容量はセクタ数の積み上げで決まるものですから、その倍数で表現できる数なら好きな容量のものが作れ、また端数が出てもシステム動作的には何の不都合もありません。アドレスバスにぶら下がっているメインメモリは、2のべき乗で表現できる容量しか許されないので、この点が決定的に違います。(詳細はここでは割愛しますが) まあHDDも最後は、記録容量の最小単位であるセクタの大きさが512Bあるいは最近なら4096Bなので、結局2のべき乗から離れられないんですけどね。ですから2.0TBと言っても2兆バイトぴったりではなく、日立製品だと内部的には2,000,398,934,016バイトだったりします。 これは思いっきり余談(でもすごく根本的)ながら、実は1バイト=8ビットも歴史的慣用であり、そのように定義された規格はありません。処理系によっては1バイト=10ビットも許される!!なので通信の世界では、バイトの代わりにオクテットという単位を使って明示し、料金計算でもめないようにしているわけですが。
お礼
ありがとうございました。 >2.0TBと言っても2兆バイトぴったりではなく、日立製品だと内部的には2,000,398,934,016バイトだったりします 2TBのHDDであれば内部的に2,199,023,255,552バイトあるべきだと思います。2兆バイトぴったりでは1.8TBぐらいにしかなりませんので…
設計というより単に表現方法でしょう。 1k=1,000、1M=1,000k、1G=1,000M、1T=1,000G の場合と 1k=1,024、1M=1,024k、1G=1,024M、1T=1,024G を比較すると、例えば1,000,000,000,000 バイトのHDDは、 後者の方法だと「1Tバイト」ですが、 後者の方法だと約「0.91 Tバイト」となり、 10Gバイト近く少ないように見えてしまうので。 >これに合わせてしてほしいと思います。 私の意見は逆で、1km=1000m や1kg=1,000g のように、 1,000倍で統一して欲しいと思っています。 全桁を正確に表現する時にはどうせ全部書くしかないので、それ以外の 下位桁がゼロの時や概略でよい時は「キロ、メガ、ギガ、テラ」で端的に表現できてよいと 思いますので。 また、逆方向の 「1,024分の1」の計算も端数が出て面倒です。 wikiによると 1,000倍でなく1,024倍を表す「キビバイト」「メビバイト」のような呼び方「2進接頭辞」があるとか。 (馴染みないですけど) http://ja.wikipedia.org/wiki/2%E9%80%B2%E6%8E%A5%E9%A0%AD%E8%BE%9E
お礼
ありがとうございました。 >1,000倍で統一して欲しいと思っています。 >逆方向の 「1,024分の1」の計算も端数が出て面倒です。 PCが2進数でしか数を表せない以上、1,000倍での統一は物理的に困難です。 1,000倍で統一となれば、基礎から多大な費用と時間をかけて開発しなおさねければならないと思われるため、1,024倍を変えるのは非常に難しいのが実情です。
お礼
何度もありがとうございました。 俗世間の物差しですか…1,024というのは中途半端と言えばそうですけどね…