25

几十年来,在计算领域(磁盘制造商除外),1 KB(千字节)被理解为 1024 字节。在过去的几年里,出现了用 KiB(“kibibyte”)来表示 1024 字节的运动,将千字节的含义改为 1000 字节,注定了我们会陷入更多年的困惑。另一方面,该运动似乎仅限于 Gnome,以及一些过分热心的维基百科编辑

你会将你的程序转换为使用 KiB 吗?如果您曾经以 KB 显示文件大小,您是除以 1000 还是 1024?

4

23 回答 23

88

KB 是 1024 字节,该死的。

于 2008-10-07T01:44:30.457 回答
51

我以前在一个应用程序中做过一次。虽然它在内部使用了 kibbi 和 mebbi(KiB、MiB 等),但它仍会显示用户(在本例中为 IT 人员)习惯的内容。底层字段只是一个以字节 IIRC 为单位的 long。

它是向前兼容的,至少允许您输入 4 GB 和 4GiB。它还理解像 4.5G 这样的速记输入,并适当地四舍五入到实际的字节数——而不是强迫可怜的用户必须以这种方式输入并防止他们的错误。更新为使用 IEC 表示法是 1 行代码。


公斤是 1000 和 98% 的世界使用公制。我们需要克服它。

我在许多让我困惑的反应中看到了很多愤怒。SI 前缀是 SI 前缀,程序员无权更改它们,没有比方便和自定义更好的理由。奇怪的是,计算机科学这个高度技术性的领域,却吵着要回到肘弗隆和棒的时代。什么?

我们都知道我们的意思,但坚持习惯会疏远和混淆用户。仅仅因为在早期的先驱时代,有些人在谈论计算机内存时决定重用 SI 表示法并不意味着他们这样做是正确的。

于 2008-10-07T03:16:00.660 回答
37

在我看来,1 千字节等于 1000 字节是驱动器制造商希望您相信的,这样您的驱动器看起来比实际更宽敞。;)

如果它听起来不像“Kibbles N Bits”,我会更认真地对待“kibibyte”

于 2008-10-07T05:48:29.183 回答
31

由于我在转专业之前花了几年时间学习成为一名机械工程师,我不得不承认“公斤”对我来说总是意味着 10^3。从这个角度来看,KiB 是有道理的。然而,试着大声说几次“kibibyte”,想想你听起来有多笨。

因此,千克为 1000 克,千字节为 1024 字节。

附录:此外,我同意那些说我们不应该改变已经建立的东西,如果它有效的话。1024 只是一个更好的二进制数字。此外,“kibibyte”听起来仍然像狗吃的东西。

于 2008-10-07T01:49:19.400 回答
16

有两种方法可以考虑这个问题:

  1. 使用您正在运行的操作系统使用的内容。这样用户就有了一致的体验。

  2. 使用正确的。

如果您始终使用 KiB,则不会造成混淆。如果你使用 KB 会有混乱。因此,如果您选择选项 #2,那么您最好实际使用 1024 并使用 KiB 后缀。无论如何,使用 2 的幂会更有效。

这取决于您,但我的经验法则是,如果您有技术受众,请使用 KiB 并避免所有混淆。如果您有大量非技术用户,那么请使用您的操作系统使用的内容。顺便说一句,Windows 使用 KB 来表示 1024 字节。

于 2008-10-07T01:44:51.390 回答
16

它不会改变“千字节”的含义。Kilo 表示 1000。有些人错误地使用它来指代 1024 字节的单位。

我从不以千字节为单位显示文件大小,因为用户不关心 1000 与 1024。相反,我总是使用“XXX KB/MB/GB”,其中 XXX 是字节数除以 1000/100 万等。

于 2008-10-07T01:48:25.907 回答
13

专业领域总是以该专业所理解的方式使用术语。例如,建造桥梁的机械工程师使用“压力”一词来表示完全不同的东西,例如,发现他的明星证人在法庭上第一天撒谎的律师。我们是否应该强制工程师使用与律师相同的“压力”定义,仅仅因为该定义被更广泛地使用?如果我们这样做,我不会开车过那座桥!

千字节 = 1024 字节。它是行业公认的术语专业化。

于 2008-10-07T02:31:17.367 回答
12

我使用 KiB。

你真的想通过拒绝使用像 IE 一样完善的标准来伤害每个人吗?

于 2008-10-08T11:30:02.160 回答
11

我总是以 1000 字节千字节显示文件大小。对于无法区分的人来说,这几乎无关紧要,当他们看到实际数字时,通常会减轻困惑。四舍五入时 65323 字节 = 65Kb,“正常”人就是这样。

我可能永远不会显示“KiB”,因为这绝不是我的客户想要的。

决定不遵循不仅仅由计算机社区创建的标准的傲慢(见...... Kilo 实际上意味着 1000 并不是“新的”)令人震惊。

于 2008-10-07T01:44:53.030 回答
10

只有当情况需要时。在几乎所有情况下,以 1,000 为基础的单位更为合适。

我知道的唯一例外是内存,因为它自然是 2 的幂的倍数,以及 CD 的大小,因为它是由制造商以 2 20字节的倍数来衡量的。其他一切,包括硬盘驱动器、DVD、闪存驱动器、带宽、处理器速度、内存总线等,目前都以 1000 秒为单位,文件大小也应该如此。(或者,至少,我和史蒂夫·乔布斯是这么认为的。Windows 可能会继续以 1024 年测量文件大小......)

为避免混淆用户,请使用 k- = 1,000 和 Ki- = 1,024。

“k”的草率用法表示 1024 是一种邪恶的可憎之物,应该用火杀死。

于 2009-08-29T16:22:04.903 回答
9

Mac OS X 不使用 KiB、MiB、GiB。另一方面,当它使用公制时,它至少可以正确地进行数学运算:

Mac OS X 截图

就我个人而言,我更喜欢把这些东西做好,以便目前处于黑暗中的用户可以从中学习。等待用户先改变是愚蠢的。用户不会有一天突然醒来并认为一千字节是 1024 字节 - 是软件让他们这样认为,那么纠正错误不应该是软件的工作吗?

于 2011-11-16T05:08:15.113 回答
8

我在存储行业工作了十年。关于 TB 大小的参数可以将解决方案的大小改变 10%。简而言之:程序员和存储行业使用不同的度量。两者都不是一直正确的。

存储网络行业协会(SNIA) 字典将千字节定义为:

千字节 (KB)

[常规] 1,000 (10^3)​​ 字节。

SNIA 使用存储和数据传输相关文献中常见的 10^3 约定,而不是计算机系统随机存取存储器和软件文献中常见的 1,024 (2^10) 约定。

我的经验法则是:

  • 以 1024^n 字节块为单位测量网络上的内存、文件、文件系统和数据。
  • 以 1000^n 字节块为单位测量原始磁盘空间——并且仅测量原始磁盘空间。
  • 告诉客户您使用的是哪个单位。经常重复自己。

总的来说,这让我摆脱了麻烦。

于 2008-10-07T06:00:35.743 回答
4

我正在开发的一个程序默认使用“KiB”,但用户偏好使用哪种测量单位(KiB 中的 1024 B、KB 中的 1024 B 或 KB 中的 1000 B)。

于 2009-09-10T00:13:10.617 回答
2

从技术上讲 KiB 是正确的,但我只在少数应用程序(主要是 linux 控制台应用程序)中看到它。用户要么习惯于为 KB 和 KiB(IT 人员)使用 1024,要么他们并不真正关心并且会认为“KiB”拼写错误(非 IT 人员)。

但是:我已经习惯使用“千字节 = 1024 字节”已有 20 多年了,即使我知道它在科学上是错误的,也会继续使用它。

如果您需要提供 KiB 以让您的灵魂得到休息,请将其作为一个选项提供,但不要将可怜的用户与另一个定义混淆 - 特别是如果他们使用使用非科学方法并定义 KB 的操作系统为 1024。

(顺便说一句:Kibibytes 总是让我想起Tinky Winky和他的朋友们……;))

于 2008-10-08T11:17:16.163 回答
1

我在教我的学生时尝试开始使用这些术语,但我现在有点放弃了。

我教过一门计算机入门课程(“是一个磁盘驱动器") 几次,这可能会让学生感到困惑,前缀在不同的上下文中表示不同的东西。当你有 1 千字节或 1 千比特的数据时,Kilo 表示 1024,除非你将它存储在磁盘上,当它是 1000 时,如果你通过网络每秒发送一个千比特,那么它是 1000,千赫兹当然也是 1000。而一公里的光缆是 1000 米!但事实证明,这真的不是什么大问题.工程和计算机科学的学生需要知道区别,反正他们会习惯的。当我在数据库课程或编译器课程中再次遇到他们时,对于不同种类的公斤、兆和其他领域(媒体设计等)的学生并不真正关心。

在我对大学走廊里的其他计算机科学人员进行了一次非正式调查后,发现他们中的大多数人从未听说过这些新前缀,我绝对放弃了。

于 2008-10-07T06:25:00.547 回答
1

没有。1024 字节是一千字节,不管这是否有意义。

过去对 1024 字节单位使用“kilo-”前缀可能是一个错误。但它现在是标准。现在试图改变它只会增加混乱。

我们没有按照应有的方式对待这个世界;我们处理世界的本来面目。

于 2008-10-07T12:16:30.303 回答
1

A KB 是 1024 字节 A kB 是 1000 字节不幸的是拼写不明确。我总是用1024。

Knuth 将 MB 称为 KKBytes 或 kkBytes 以区分 1024*1024 和 1000*1000

于 2008-10-07T18:21:04.250 回答
0

在计算机基于十进制之前,我仍然会测量 2 10*n ...

于 2008-10-07T01:49:05.563 回答
0

当您在十进制数字系统中工作时,Kilo 表示 10^3。

当您在二进制数字系统中工作时,Kilo 表示 2^10。

我的意思是,看看它......他们都很随意。在我看来,其他任何事情都同样是任意的——所以我们有 40 年根深蒂固的任意与全新的任意。哪个应该赢?现在,我投票支持根深蒂固的方法,仅仅是因为它会减少完全的混乱。

在某些时候,我们的技术必然会发生变化——想想量子/基因计算机——那将是净化我们的测量系统的好机会。

此外,一些用户总是会感到困惑——我们是否应该为他们消除困惑,冒着让这一切发生的社区(我们和硬件人员)感到困惑的风险?我想不是。

于 2008-10-07T05:52:28.287 回答
-1

老实说,我从来没有听说过这个,我怀疑它会在主流使用中获得很大的吸引力。我无法想象我为什么要开始这样做。当前千字节的定义是准确且充分的。我更愿意看到硬盘制造商开始使用准确的术语,而不是进一步愚蠢的技术术语。为什么制造商既不能制造大小正好为 xGB 的驱动器,也不能简单地说出它们的真实情况?

于 2008-10-07T01:45:51.827 回答
-1

除了对术语需要如何更改的咆哮之外,我从未听说过使用这些表达方式。它不会流行起来。

于 2008-10-07T01:46:50.823 回答
-1

对我来说,这有点像我们过去的“黑客”论点。

根据您的年龄和顽固程度,“黑客”对您来说可能意味着不同的东西。有一段时间,在媒体上(可能仍然是今天,部分仍然如此)人们认为黑客攻击是非法侵入机器的行为。但是,在现在的行业中,人们得到的感觉是,这是一个喜欢摆弄东西的人。

有一段时间,安全社区不确定这是否会成功,我们实际上尝试使用“cracker”来指代坏人。我认为饼干并没有像我们希望的那样真正起飞,但我们已经将“黑客”作为一个合法的术语,并取得了相当大的成功。

所以对我来说这也是一样的:仅仅因为媒体试图将 KB 视为1,000,我永远不会退缩,并且始终坚持剩余 24 位的权利。

24bFL

于 2009-09-10T00:21:30.167 回答
-2

Drivemaker/denary 千字节可以在地狱中燃烧。二进制机器的二进制单位。

于 2008-10-07T01:46:13.183 回答