gpt4 book ai didi

php - 内容长度转换

转载 作者:可可西里 更新时间:2023-11-01 00:48:13 25 4
gpt4 key购买 nike

我正在使用脚本检查文件大小,该脚本以 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 字节
  • KB(Mac):428KB

  • 字节(脚本):427840

  • KB(脚本):417.81 KB

我想知道是脚本还是其他原因导致了这种差异?

谢谢!

最佳答案

看起来 Mac 使用的是 1000 约定,即 1kB 是 1000 字节。您的转换使用 1kB = 1024 字节。两者在技术上都是正确的,但是大多数程序员会使用 1kB = 1024。Mac 使用 1kB = 1000,而 Windows 使用 1kB = 1024。

硬盘制造商将使用 1000 约定,以便他们在做广告时可以使用更大的数字,这就是为什么我安装在我的机器上的 1 TB 硬盘在 Windows 中被列为只有 931 GB 的原因。

在代码中检查文件大小时,我的建议是始终使用字节,因为这样可以避免这种差异并且更便于移植。

关于php - 内容长度转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13396445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com