有人能解释一下操作系统和在线计算器中显示的数据大小之间的区别吗?

有人能解释一下操作系统和在线计算器中显示的数据大小之间的区别吗?

例如,我刚刚下载了一个 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 个字节块。

相关内容