2012-03-31 74 views
-4

可能重複:
How do I get the size of a file in megabytes using Perl?轉換MB到TB的perl

我嘗試了一些方法來MB轉換成TB在Perl,但價值並不在Perl輸出和網絡轉換器相匹配。

什麼是最好的公式轉換上述。

+3

您需要指定它是二進制還是SI前綴。使用二進制前綴(2^20)的差異的大小比SI前綴(1000^2)大大約4.8%。 – 2012-03-31 16:45:29

+0

也許你想看看[如何使用Perl獲得以兆字節爲單位的文件大小?](http://stackoverflow.com/questions/511785/how-do-i-get-the-size-of-a -file-in-megabytes-using-perl) – 2012-04-01 00:38:16

回答

3

如果你不想小數點後任何數字,你可以通過20位右移:

perl -e 'print 202220394 >> 20;' 

192。而202 220 394兆字節= 192.852396兆兆字節。

如果你想在小數,除以2^20:

perl -e 'print 202220394/(1 << 20);' 

192.852396011353

+0

Dave,處理器/虛擬存儲與磁盤存儲的公式有任何區別嗎?將MB轉換爲TB? – 2012-04-04 16:12:01

+0

當然。磁盤存儲人員已經採用了「MB」類型的前綴,使得M表示1,000,000或10^6。但在此之前,M的意思是2^20,略多於100萬。有些人已將「MiB」用於「mebibyte」來表示這個2^20的值。不幸的是,通過查看一個數字並不清楚,但正如你所暗示的,你通常可以假設一個包中的磁盤存儲量爲10^6,而計算機內的所有內容都是2^20。 TiB爲2^40比10^12,因此您可以看到MiB/TiB = 2^20/2^40與MB/TB = 10^6/10^12之間的不同轉換。 – Dave 2012-04-05 12:38:10