在Perl中将字节转换为MB
我有一个字节大小。我想每次都转换成MB。但是我的代码给出了错误的答案在Perl中将字节转换为MB,perl,Perl,我有一个字节大小。我想每次都转换成MB。但是我的代码给出了错误的答案 sub sizeConversion { my $size = shift; return ($size / (1024 * 1024)); } my $size = 1024; my $size_conversion = &sizeConversion($size); print $size_conversion; 我得到的输出是: 0.0009765625 但我应该得到的输出为 0.00102
sub sizeConversion {
my $size = shift;
return ($size / (1024 * 1024));
}
my $size = 1024;
my $size_conversion = &sizeConversion($size);
print $size_conversion;
我得到的输出是:
0.0009765625
但我应该得到的输出为
0.001024MB
请帮忙。提前感谢。您将获得
0.0009765625
,因为这是您定义的正确答案
要获得0.001024
,必须将1024
除以1000000
MB
是2^20
字节还是10^6
字节取决于您是在组装中编程还是在销售硬盘驱动器。看
根据维基百科,官方的SI单位是
10^6
或1000000
字节。你应该知道在IT世界中有两种兆字节(MB)
(A) 1 MB=100万(1000000)字节
此MB用于显示硬盘驱动器、DVD和BD的容量以及网络中的通信容量等
(B) 1 MB(更准确地说是1 MiB)=字节可以由20个地址行寻址=2^20(1048576)字节
这个MB用来表示半导体存储器的容量,如RAM、ROM
您可能知道RAM中的数据由几个地址行寻址,每个地址行的值为0或1。如果一个内存有10个地址行和8个数据行,则可以存储2^10(1024)个字节(8位)的地址。这种内存的容量不是“1千字节和24字节内存”,而是“1千字节内存”。随着内存容量的增加,2^20字节的内存被称为1兆字节内存
如果在(A)的意义上使用“MB”一词,则应更正代码中的行
return ($size / (1024 * 1024));
到
更正后的代码将为您提供0.001024 MB的答案
如果在(B)的意义上使用“MB”一词,则0.0009765625 MB是正确答案
有两种MB,所以有两种正确答案
这取决于你想得到的答案。你最好用计算器来验证你的假设:1/1024到底是什么(提示:它不是0.001024)1024字节->1KB->1/1024MB。但是1/1024的结果不是0.001024,因为1024的幂2不是1000000。与答案无关;我担心这听起来很愚蠢,就像Babybyte或Maybebyte。实际上“正确”的答案是1
MB
总是1000KB
这是1000字节。所以MB总是10^6。如果要使用1024进行计算,则正确的结尾是MiB
。仅仅因为很多人将MB定义为1024KB并不正确。实际上只有一种MB
,您提到的第二种叫做MiB
return ($size / (1000 * 1000));