例如,我刚刚下载了一个 4.67 GiB 的文件。
在 Windows 10 中,当我进入属性时,它会列出以下内容:
显示为5,023,979,520字节
磁盘大小为5,023,981,568字节
在 Linux 上,它被列为5,023,979,520字节。
当您使用在线计算器转换为4.67 GiB到字节, 你得到5014374318.08。
有人能解释一下为什么会有差异吗?我猜这可能是由各个文件系统增加的开销?NTFS 和 EXT4 显示的大小相同。
答案1
5023979520 B 是准确值。它被转换成了吉字节,显然圆形(向下)保留两位小数。结果为 4.67 GiB,由于四舍五入,因此为近似值。
# in Linux
$ dc -e '2k 5023979520 1024 3 ^ / p' # 2k sets precision, the rest is math in RPN
4.67
5023979520 B 是精确值,4.67 GiB 是近似值。并非相反。
如果您反过来做,即将 4.67 GiB 作为精确值并将其转换为字节,那么是的,您将得到 5014374318.08 B。
# in Linux
$ dc -e '2k 4.67 1024 3 ^ * p' # 2k sets precision, the rest is math in RPN
5014374318.08
现在,如果您意识到 4.67 GiB 本来就是一个近似值,那么您就会承认 5014374318.08 B 也一定是类似程度的近似值。
事实上,5014374318.08 = 5023979520 ±1%。
答案2
您对 GB (Gigabyte) - 1000 和 GiB (Gibibyte) - 1024 感到困惑。请参阅维基百科上的“gigabyte”。
如果您取 5,023,979,520 并不断除以 1024,您将得到 4.6789455413818359375 GiB - 加减小数。
对于磁盘大小,您必须考虑块大小,其中文件的剩余部分(即使只有几个字节)也会占用整个块。许多文件系统都会发生这种情况。但是,有一些文件系统将使用替代方法来存储这些剩余的几个字节,通常是在 inode 结构中,尤其是在 Linux 上。
因此,如果将 5,023,981,568 除以 4,096,结果将恰好为 1,226,558。这意味着该文件占用了恰好 4,096 个字节块。