1 MB 真的可以表示 1000000 字节、1024000 字节或 1048576 字节吗?

Pac*_*ier 65 definition

可能的重复:
千字节、千位和千字节之间有什么区别?

如果 1 KB(千字节)可以表示 1000 字节或 1024 字节,

1 MB(兆字节)可以表示 1000 KB 或 1024 KB,

这不意味着 1 MB 可以表示以下四个中的任何一个吗?:

  1. 1000 × 1000 = 1000000 字节

  2. 1000 × 1024 = 1024000 字节

  3. 1024 × 1000 = 1024000 字节

  4. 1024 × 1024 = 1048576 字节

或者2.3.不被接受,所以 1 MB 可能意味着只有 1000000 字节的 1048576 字节?

ser*_*dev 109

首先,在谈论数字信息(读取字节)时有两种类型的前缀:SI 前缀二进制前缀

SI 前缀

SI 前缀是 1,000 的幂(1,000 1、1,000 2、1,000 3等):

  • 1 kB = 1 KB = 1,000 1字节 = 1,000 字节;
  • 1 MB = 1 MB = 1,000 2字节 = 1,000,000 字节;
  • 1 GB = 1 GB = 1,000 3字节 = 1,000,000,000 字节;

如您所见,只有 SI 符号mega及以上大写。因此,KB不是有效的前缀

二进制前缀

二进制前缀是 1,024 的幂(1,024 1、 1,024 2、 1,024 3等):

  • 1 KiB = 1 kibibyte = 1,024 1字节 = 1,024 字节;
  • 1 MiB = 1 mebibyte = 1,024 2字节 = 1,048,576 字节;
  • 1 GiB = 1 Gibibyte = 1,024 3个字节 = 1,073,741,824 个字节;

正如你在这里看到的,每个二进制符号都是大写的,并且在B符号之前添加了一个小写的i,以表明我们正在谈论 kibibytes 而不是 kilobytes,mebibytes 而不是 megabytes,等等。


然而,二进制前缀并没有被广泛使用,Windows 根本不使用它们。

这里发生的是 Windows 告诉我们硬盘驱动器的容量为 300,066,795,520 字节,根据 Windows,等于 279 GB。但是,我们知道如果 1,000,000,000 字节 = 1 GB,则300,066,795,520 字节 = ~300 GB = ~279.5 GiB

因此,如果您看到 1 KB(这是错误的,请记住)或 1 MB,假设我们分别是 1 kibibyte 和 1 mebibyte。KbkbGbgb等也很常见,即使它们代表(8 位 = 1 字节)。


在精,在任何情况下可在1 KB或1 MB有多个值,即使(坏)的使用似乎在告诉相反。

  • @kubanczyk:我不同意这是懒惰——但懒惰不一定是坏事。我们*需要*一种以 1024、1048576 或 1073741824 字节为单位的存储方式,并且在(相对较新的)二进制前缀(Ki、Mi、Gi)发明之前,重新使用 SI 前缀(K, M, G) 是*唯一*合理的方法。我们这样做了这么多年,以至于 K、M、G 前缀*仍然*含糊不清。最好从一开始就一致地使用二进制和 SI 前缀,但事实并非如此。 (5认同)
  • 也许您应该补充一点,当谈到数据传输速率(以比特/秒为单位)时,通常使用以 10 为基数的前缀,例如 Gb/s 实际上意味着“每秒 10 亿比特”。 (3认同)
  • 二进制前缀相对较新,使用 SI 前缀来指代 2 的幂仍然*非常*。我想很多人甚至不知道二进制前缀。@Novox 提出了一个很好的观点:即使是使用 GB 来表示 1048576 字节存储的人通常也使用 Gb/s 来表示每秒 1000000000 位。二进制前缀的发明并没有使所有用法保持一致。 (3认同)
  • 嗯,让我们换个方式试试,好吗?看看 8 位发生了什么。与其称它为 decabit 并坚持说 deca- 在 IT 8 中有时意味着而不是 10,有人*发明了一个新术语*并将其称为字节。瞧!如果不是 65536,则 1024 也可以使用相同的解决方案。 (3认同)
  • @kubanczyk 不要误会我的意思,我/我/是正确使用单位的坚定支持者。不过,我不认为“这很明显”。如果真是这样,就没有那个问题了吧? (2认同)

小智 14

千字节是以 10 为基数的度量,因此 1 千字节 = 10 的 3 次方 = 1000 字节。

尽管这对于精确测量物理数据并不十分准确,因为它们以二进制形式存储,以基数 2 进行测量,因此kibibyte于 1999 年建立,以取代在计算机科学上下文中使用时表示 1024 字节的千字节。

Kibibyte 是以 2 为基数的度量,因此 1 kibibyte = 2 的 10 次方 = 1024 字节。

这同样适用于兆字节(1 兆字节 = 10 的 6 次方 = 1000000 字节),其中以 2 为基数的度量是兆字节(1 兆字节 = 2 的 20 次方 = 1048576 字节)

  • (1) 适用于兆字节
  • (2) 和 (3) 不被接受
  • (4) 适用于mebibyte

  • 虽然这在技术上是正确的,但我想指出的是,在通常的用法中,没有人说 kibibyte 或 mebibyte,而在谈论“kilobytes”时,人们指的是 Windows 或操作系统显示的单位,即 kibibytes。我经常看到正确使用千字节的唯一地方是硬盘容量,这让用户无止境地感到沮丧。 (13认同)
  • 是的,但仅仅是因为他们的操作系统没有“正确”使用 SI 前缀。 (4认同)
  • 尽管如此,MB * 可以表示 1,000,000 或 1,048,576 个字节*。虽然不是*正确*,但它*是*普遍的。抄送@DarthAndroid (2认同)

kre*_*eet 9

目前,不推荐使用“KB”、“MB”等来表示 1000 字节、1000 x 1000 字节等以外的任何内容,这与大多数官方标准相悖。表达 1024 字节、1024 x 1024 字节等的新方法是 KiB(kibibyte)、MiB(mebibyte)等。这是一团糟,上下文对于理解其含义至关重要。有关这些问题的讨论,请参阅http://en.wikipedia.org/wiki/Kibibyte


Dan*_*eck 7

可能不会,因为在单个 number 中使用前缀会不一致。

虽然SI 前缀 k代表 1000,但在 IT 中经常被用来表示1024(有一些提倡二进制前缀),在相同的数字中在这些含义之间交替是没有意义的。

  • 尽管如此,[谈论“1.44MB”软盘的人正是这样做的](http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/1mb44-is-not-a-standard-floppy-disc-size .html)。 (6认同)