我知道 2 进制和 10 进制、MB 和 MiB,但我不明白 du 和 Windows 资源管理器显示的目录的字节数

我知道 2 进制和 10 进制、MB 和 MiB,但我不明白 du 和 Windows 资源管理器显示的目录的字节数

du 命令显示已使用 43G。我不确定这是 2^30 意义上的 2 进制数,还是 10^9 意义上的 10 进制数。但无论如何 -

从 cygwin 运行这个 du 命令,查看 windows 目录的大小(从管理命令提示符完成 - 因为否则它似乎在读取某些目录时遇到一些问题)

user@comp ~
$ du -sh /cygdrive/c/windows
43G     /cygdrive/c/windows

据我所知,Windows 资源管理器以“基数 2”显示它(KB、MB、GB 的单位比十进制 KiB、MiB 等的单位更大),因此需要较少数量的较大单位才能产生相同的结果。

Windows 资源管理器显示

在此处输入图片描述

46.6GB,超过 500 亿字节。(根据 Windows 资源管理器)

或者

46.8GB,超过 500 亿字节。(根据 Windows 资源管理器)

所以,你先不管它。

即使我将较大的数字 46.8GB 乘以 1.048576,结果49.0733568也不会超过 500 亿。所以这是问题的 A 部分,但也是问题的 B 部分,为什么 du 数字这么低。

答案1

问题 A 部分的答案是,您没有乘以正确的数字。从“二进制 GB”(或更准确地说是 GiB)到字节的校正因子不是 1.048576。它是 1024 的立方。也就是 1,073,741,824。

46.8 x 1024 立方 = 50,251,117,363.2 其余差异是由于“46.8”的舍入误差造成的。看起来它实际上应该是 46.813...某个数字。

二进制前缀比例中的每个“步骤”都需要另一个 1024 的因子。例如,要从 GiB 变为 KiB,或从 MiB 变为 B,您需要乘以 1024 的平方,即 1,048,576。

请参阅维基百科关于“二进制前缀”的文章,特别是本节底部的表格:https://en.wikipedia.org/wiki/Binary_prefix#Adoption_by_IEC.2C_NIST_and_ISO

相关内容