我有一个字节大小。我希望每次都以MB为单位进行转换。但是我的代码给出了错误的答案。
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 :(得分:5)
您获得0.0009765625
,因为这是您所定义内容的正确答案。
要获得0.001024
,您必须将1024
除以1000000
MB
是2^20
字节还是10^6
字节取决于您是在汇编编程还是销售硬盘驱动器。见Wikipedia: Megabyte
根据维基百科,官方SI单位为10^6
或1000000
字节。
答案 1 :(得分:3)
您应该知道IT世界中有两种兆字节(MB)。
(A)1 MB = 1百万(1,000,000)字节。
此MB用于显示硬盘驱动器,DVD和BD的容量以及网络中的通信容量等。
(B)1 MB(更准确地说是1 MiB)=字节可以通过20个地址行寻址= 2 ^ 20(1,048,576)字节。
这个MB用于提供半导体存储器的容量,如RAM,ROM。
您可能知道RAM中的数据是由多个地址线寻址的,每个地址线的值为0或1.如果一个存储器有10个地址线和8个数据线,则2 ^ 10(1024)个字节的地址(8位)可以存储。这种存储器的容量不称为“1千字节和24字节存储器”,而是“1千字节存储器”。通过增加内存容量,2 ^ 20字节的内存变成了1兆字节的内存。
如果在(A)意义上使用“MB”一词,则应更正代码中的行
return ($size / (1024 * 1024));
到
return ($size / (1000 * 1000));
更正的代码将为您提供0.001024 MB的答案。
如果在(B)意义上使用“MB”一词,则0.0009765625 MB是正确答案。
有两种MB,所以有两种正确答案。
这取决于你想要得到的答案。