Windows 中的文件大小:是 KB 还是 kB?

a.s*_*.s. 24 windows storage

在 JEDEC 标准中,一“千字节”(KB) 是 1024 字节,而在大多数情况下,定义已转变为根据 SI 表示 1000 字节 (kB)。为了解决这种差异,使用了二进制前缀 (kiB)。

所以我们有 3 种使用前缀的选择 - JEDEC、IEC(均采用二进制)和公制(采用十进制)。

我的问题是:

  1. Windows 在显示文件大小时使用什么前缀标准?(当然不是IEC标准)
  2. 为什么 Windows 操作系统以 KB 为单位显示文件大小(使用大写字母“K”),而对于 SI 单位的 Kilo 则是小字母“k”?

大写的“K”代表 SI 单位制中的开尔文。

我在理解中遗漏了什么吗?

txt*_*elp 43

我会尽可能直接地回答你的问题,因为使用 KB vs. KiB vs. kB vs. kb 会很快引发一场题外话,因为命名约定战争已经持续了几十年。

1.) 标准 Windows 在显示文件大小时使用什么前缀?(当然不是IEC标准)

实际上它是JEDEC 100B.01标准,这意味着 KB (Killobyte) 是 1024 字节。

2.) 为什么 Windows 操作系统以 KB 为单位显示文件大小(使用大写字母“K”),而对于 SI 单位的 Kilo 则是小字母“k”。

同样,因为它是半导体存储容量单位前缀的JEDEC 100B.01标准;它不是 SI 度量单位,因此没有相同的含义。

处理/时,小写k可以与大写同义;对于、和、JEDECISOBIPM SI前缀规范将它们分别定义为大写、和。小写,并且仅用于非正式场合,当上下文提供的含义(如在我刚换了我的1GB NIC我的2TB硬盘不工作),且本身无效。KkilokibigigamegateraGMTgmt

大写的“K”代表 SI 单位制中的开尔文。我在理解中遗漏了什么吗?

是的,当您专门谈论温度测量和处理 SI 测量单位时,大写K代表Kelvin,但是,我们正在处理半导体存储容量,我不会说我有512 KB of RAM,意思是我有512 Kelvin Bytes of RAM。此外,了解何时/如何区分 IEC/JEDEC 和 SI 测量 KB/MB/GB/等单位实际上取决于上下文。

大多数操作系统和绝大多数设备是处理存储器/存储使用前缀K为基洛意味着1024个字节,所以当我拿到RAM,说这是一个4GB的模块,我知道这是4个吉比-Bytes(4 * 1024 * 1024 * 1024) 而不是千兆字节 (4*1000*1000*1000)。

对此的主要例外是驱动器容量。当我购买拇指驱动器或硬盘驱动器,我知道什么时候说32GB,这意味着32个千兆-Bytes(32 * 1000 * 1000 * 1000),而不是吉比-Bytes(32 * 1024 * 1024 * 1024),即使我操作系统将以 Gibi 字节报告它(因此将我的驱动器从 32GB 变为有效的 29.8 GiB 驱动器)。另请注意,有些 Linux 版本喜欢使用 KB 表示 1000 字节,而不管上下文如何,这可能会让人有些困惑,因为并非同一操作系统中的所有应用程序都会报告相同的大小。大多数设备制造商通常会在“盒子”(或网站等)的某处放置免责声明,以表示他们在说 KB/GB/etc 时的含义,例如在具有免责声明的硬盘盒上*1GB = 1000000000 bytes

如果您对操作系统向您报告的样式感到困惑,您可以随时查看文件有多少字节,然后进行数学计算以查看您的操作系统告诉您的内容(“文件大小”,而不是“磁盘大小”,因为它们是不同的东西);如果您的操作系统无法告诉您原始字节数,那么除了它使用的后缀之外还有更大的问题。

或者正如兰德尔所说: 千字节

  • “大多数操作系统和绝大多数处理内存/存储的设备使用前缀 K 表示 Kilo 表示 1024 个字节”[从 10.6 开始,OS X 不再这样做。](https://support.apple.com/en -us/HT201402)这是一个相当重要的操作系统。 (9认同)
  • 硬盘驱动器不是“例外”。DVD 上的“GB”以十进制千兆字节为单位。十进制前缀还用于表示磁带容量、网络速度(“千兆以太网”是 1000^3 位/秒)、CPU 和总线时钟速度和带宽额定值,以及在过去,所谓的串口上的“波特率”端口。如果有的话,RAM 是该领域中几乎所有其他使用十进制前缀的产品的例外。出于某种原因,Windows 资源管理器决定采用 JEDEC 约定,而不是 _包含资源管理器正在告诉您的文件的硬盘驱动器制造商使用的约定。_ (6认同)
  • @Ramhound:你能找到这个的来源吗?OS X 似乎在我的系统上默认使用正确的前缀,我看不到更改它的选项。有一个选择公制或美制单位的选项,但没有使用二进制前缀的选项。 (3认同)
  • MacOS 和一些 Linux 发行版(如 Ubuntu)已切换到十进制前缀,以使文件大小与 HDD 大小一致。KB = 1000 字节,GB = 1000 字节 (2认同)
  • @JamieHanrahan:驱动器存储历来使用大小为 2 的幂的扇区,以及扇区数为 2 的幂的分配块。一张 360K 的软盘有 720 个扇区,每个扇区 512 字节;“1.44MB”软盘有 2,880 个这样的扇区 [“兆字节”是 1,024,000 字节]。只有在驱动器容量变大之后,兆字节才会缩小。 (2认同)
  • @phyrfox 不存在“使用二进制基数进行计算”之类的东西;这种心态会让你误入歧途。对于表示数字,是的。但对于计算来说,算术就是算术:输入和答案都是相同的,无论它们是以十进制、二进制还是其他形式编码的。关于“浪费的空间”,不是问题:如果您查看任何驱动器的真实大小(以字节为单位),您会发现它足够大(如果需要)可以被块大小整除。顺便说一句,32,000,000,000 可以被 4096 整除,并且现代操作系统在启动初始阶段之外不会使用“BIOS 支持”。 (2认同)

Ale*_*nov 15

在 Windows 资源管理器中,KB 表示千字节,它指的是 1024 字节的二进制千字节。Explorer 使用大写的“K”来“表示”二进制,而不是小写的“k”,后者是 SI 中的标准千前缀,表示 1000。

Raymond Chen 的博客文章为什么 Explorer 使用术语 KB 而不是 KiB?概述了为什么 Windows 不使用 KiB。

如果你环顾四周,你会发现没有人(在实验错误范围内)使用术语 kibibyte 和 KiB。当您购买计算机内存时,以兆字节和千兆字节为单位指定数量,而不是兆字节和千兆字节。打印在空白 CD 上的存储容量以兆字节表示。互联网上(在实验错误范围内)讨论内存和存储的每个文档都使用术语千字节/KB、兆字节/MB、千兆字节/GB 等。您必须竭尽全力寻找使用术语 kibibyte 的人/KiB、mebibyte/MiB、gibibyte/GiB 等。

Explorer 只是遵循现有的做法。每个人(在实验误差范围内)都将 1024 字节称为千字节,而不是千字节。如果 Explorer 切换到术语 kibibyte,它只会以他们无法理解的形式向用户显示信息,出于什么目的?