我正在使用报告文件大小来检查文件大小,该脚本报告BYTES中的内容长度与我在Mac上看到的完全匹配,但是如果我将字节转换为KB:
function formatBytes($bytes, $precision = 2) {
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
$pow = min($pow, count($units) - 1);
$bytes /= (1 << (10 * $pow));
return round($bytes, $precision) . ' ' . $units[$pow];
}
…以KB为单位的大小总是与我在Mac上看到的大小不同.
例如:
Windows 8 TV Ad Tune.m4r
>字节(Mac):4,27,840字节
> KBs(Mac):428KB
>字节(脚本):427840
> KBs(脚本):417.81 KB
我想知道它的脚本或其他什么导致了这种差异?
谢谢!
解决方法:
看起来Mac正在使用1000惯例,即1kB是1000字节.您的转换使用1kB = 1024字节.两者在技术上都是正确的,但大多数程序员将使用1kB = 1024.Mac使用1kB = 1000,Windows使用1kB = 1024.
硬盘制造商将使用1000惯例,因此他们可以在广告时使用更大的数字,这就是为什么我在我的机器上安装的1TB硬盘被列为在Windows中只有931千兆字节.
在检查代码中的文件大小时,我的建议是始终使用字节,因为这样可以避免这种差异并且更加便携.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。