2012-03-31 73 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