- ベストアンサー
バイトをGBにするには?
Sub FSO() Dim myFSO As Scripting.FileSystemObject Set myFSO = New Scripting.FileSystemObject Debug.Print myFSO.Drives.Item("C").TotalSize & "バイト" End Sub でバイトで容量を取得できるのですが、 単位をGBにするにはどうすればいいですか? Debug.Print myFSO.Drives.Item("C").TotalSize / 1024000000 & "GB" これであってるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>1000*1000*1000でGとするか、1024*1024*1024でGとするかのどちらかです 当然ですよね。もともとの意味がわかっていれば、そうなるはずなんですが。
その他の回答 (1)
- mitoneko
- ベストアンサー率58% (469/798)
慣習と、規約が入り交じり、とてもややこしい状態になっているのが、この2進数の補助単位の扱いです。 本来、K・M・G・Tという補助単位は10進数を基本としているので、素直に、1000倍づつしていくのが正しい姿です。 でも、2進数を扱う「バイト」にこれを適用する時に、2の10乗の1024を掛けていく慣習がありました。この場合は、補助単位が一つ上がる毎に、1024倍することになります。1GBだと、1024*1024*1024バイトです。 ただしい、単位として、1024倍を基礎とする単位系には、「キビバイト」(KiB)・「メビバイト」(MiB)・「ギビバイト」(GiB)とするIECの規定もあるのですが、あまり知られてはいません。 そのため、K・M・G・Tを1000倍としてみるか1024倍としてみるかは、渾然として入り交じっているのが実情です。 ただ、乗率を1024にするのか、1000にするのかはどちらか一つに統一してください。1024*1000*1000というのはあり得ません。1000*1000*1000でGとするか、1024*1024*1024でGとするかのどちらかです。(実は、こういう単位系が混乱した使い方をしている事例も多いです。が、明らかにおかしいです。) どちらを選択するかは、あなたが作っておられるソフトを使う人・環境が、どちらの単位系を使っているかを見て決めてください。
お礼
どうもありがとうございました。
お礼
どうもありがとうございました。