Joe*_*Joe 3 memory storage data-transfer prefix
最近,我研究了一般用于数字存储/计算的 SI 和二进制前缀,但我仍然不确定我是否理解二进制前缀背后的逻辑(实际问题在底部)。
目前的理解(总结):
单位:
看起来很简单,每次你最终得到 'total # of bytes == current prefix value * 1,000' :使用下一个最大的前缀,它可以表示为 '1000 ^ 1 + 你已经使用的 SI 前缀的数量公斤。够简单的。
二进制:
因此,显然,当使用 2 的幂的数据单元时,内存会工作得更好/更容易(老实说,“系统架构”对此的解释超出了我的理解范围,所以我只相信他们的话)。此外,在二进制前缀正式建立之前的计算机早期,具有 1024 字节内存的机器(这将是使用 2 的幂突破 1000 字节的最小内存量),设计者决定使用已经建立的 SI标准并将此内存量描述为 kB,即使它们实际上并不相等(或多或少“足够接近”)。
这就是我的理解开始崩溃的地方,我猜由于 SI 标准通过使用公式(基数 1000 ^ 1 + 使用的前缀 #)“上升”到下一个前缀,那么二进制中的等价物是(基数 1024 ^ 1 + 使用前缀 #),因为 1024 比 512 或 2048(使用 2 的幂)更接近 1000,因此与 SI 公式更密切相关。
实际问题:
那么,如果这是正确的,那么此时为什么要使用二进制前缀呢?只说“1.024 kB”而不是 1 KiB(或您正在测量的任何单位)真的那么“糟糕”吗?我认为将 4 GiB 的 ram 列为 4.29497 GB 有点愚蠢(这是原因吗?使用四舍五入的数字更容易?)。那我对这些前缀标准的一般理解是否正确?
任何澄清表示赞赏,感谢您的阅读。
好吧,我们使用 SI(又名十进制或公制)术语\n因为它们是重量和度量的正确术语\n(一公斤 = 1000\xe2\x80\xafgrams,一公里 = 1000\xe2\x80\xafmeters,等等.)\n因为它们\xe2\x80\x99已经存在了很长一段时间\n(kilo-和milli-前缀是在1700年代引入的,\n它们源自希腊语和拉丁语,\n使用2K\xe2 \x80\xaf几年前 [har\xe2\x80\xafhar]\xe2\x80\x8a)。\xc2\xa0\n我们在适当的时候使用二进制术语(在计算机上下文中)\n,因为它们是那些背景。
\n\n但二进制术语是在不到 20\xe2\x80\xaf 年前引入的, \n并且在不到 10\xe2\x80\xaf 年前被正式化的。\xc2\xa0\n而且它们并不是与新概念相关的新术语\n(如,例如,\xe2\x80\x9claser\xe2\x80\x9d 是)。\xc2\xa0\n它们是已建立概念的新术语\n(使用了错误的词)。\xc2\xa0\n因此,它们的流行速度很慢\n(因为许多人仍然错误地使用旧术语)。
\n\n这提醒我:你似乎对此感到困惑。\xc2\xa0\n当有人说\xe2\x80\x9c4\xe2\x80\xafGB\xe2\x80\x9d时,他的意思是4,294,967,296字节,\n他是\xe2\ x80\x99t \xe2\x80\x9c 四舍五入数字\xe2\x80\x9d,因为他不\xe2\x80\x99t 意味着\xe2\x80\x9c4.294967296\xe2\x80\xafGB\xe2\x80\x9d。\ xc2\xa0\n他的意思是\xe2\x80\x9c4\xe2\x80\xafGiB\xe2\x80\x9d,而他\xe2\x80\x99s使用了错误的术语。\xc2\xa0\n因为他没有\xe2\x80 \x99 还没有学会新术语,\也不是因为他\xe2\x80\x99 不明白为什么差异很重要,\xe2\x80\x99 也不是因为他\xe2\x80\x99 害怕与他交谈的人\xe2\x80\x99 \n会理解 \xe2\x80\x9cGB\xe2\x80\x9d,但不会理解 \xe2\x80\x9cGiB\xe2\x80\x9d。\xc2\xa0\n二进制术语系统\xe2\x80\x99t 不会被忽略; \nit\xe2\x80\x99s仍在被学习、接受和采用的过程中。
\n\n维基百科对此进行了详尽的介绍。\xc2\xa0\n例如,在二进制前缀文章中:
\n\n\n\n\n计算机行业历来\n 在至少两个略有不同的测量系统中使用单位千字节、兆字节和千兆字节,\n 以及相应的符号 KB、MB 和 GB。\n 引用主内存 (RAM) 容量,\n GB通常表示 1\xe2\x80\xaf073\xe2\x80\xaf741\xe2\x80\xaf824 字节。\xc2\xa0\n 因为这是 1024 的三次方,\n 1024 是 2 的幂 (2 10 ),这种用法称为二进制前缀。
\n\n在大多数其他情况下,行业使用乘数kilo、mega、giga等,\n 其方式与国际单位制(SI) 中的含义一致,即 1000 的幂。\xc2 \xa0\n 例如,500\xc2\xa0gigabyte 硬盘可容纳 500\xe2\x80\xaf000\xe2\x80\xaf000\xe2\x80\xaf000 字节,\n 和 1\xe2\x80\xafGbit/s (每秒千兆位)以太网连接\n 以 1\xe2\x80\xaf000\xe2\x80\xaf000\xe2\x80\xaf000\xc2\xa0bit/s 传输数据。\xc2\xa0\n 与二进制前缀用法,\n 此用法被描述为十进制前缀,\n 因为 1000 是 10 的幂 (10 3 )。
\n\n使用具有两种不同含义的相同单位前缀\n 引起了混乱。\n\xc2\xa0 从 1998 年左右开始,\n国际电工委员会(IEC)\n 和其他几个标准和贸易组织\n 通过发布解决了这一歧义专门针对 1024 的幂的一组二进制前缀的标准和建议\n。\xc2\xa0\n 因此,\n 美国国家标准与技术研究所(NIST)\n 要求SI 前缀\n 只能是用于十进制意义:[1] \n 千字节和兆字节分别表示\n 一千字节和一百万字节(与 SI 一致),\n 而新术语如kibibyte、mebibyte和gibibyte,\n 具有符号 KiB 、MiB 和 GiB 分别表示 1024 字节、1\xe2\x80\xaf048\xe2\x80\xaf576 字节、\n 和 1\xe2\x80\xaf073\xe2\x80\xaf741\xe2\x80\xaf824 字节。[2] \xc2\xa0\n 2008 年,\n IEC 前缀被纳入IEC 80000-13标准。
\n
[大概维基百科正在使用书写大十进制数的约定\n以三位数字为一组,并用空格分隔\n,以尊重使用.
而不是,
作为\xe2\x80\x9c千位分隔符\xe2\x80\x9d的人。]
类似的段落出现在其他页面上。\xc2\xa0\n在公制前缀中:
\n\n\n\n\n在信息技术的某些领域,对于某些 SI 前缀(千、兆、千兆),通常根据 1024 的幂而不是 1000 来指定非十进制倍数,这与国际单位制(SI)。\xc2\xa0\n 这种做法已得到一些行业协会的认可,\n 包括JEDEC。\xc2\xa0\n国际电工委员会(IEC)\n 对二进制前缀系统进行了标准化\n(kibi、mebi、gibi 等)用于此目的。[23]
\n
以公斤为单位:
\n\n\n\n\n第二个定义在计算机科学和信息技术的某些领域中已得到普遍使用,但与 SI 定义不一致。\xc2\xa0\n 它使用 kilo 表示 2 10 \ xe2 \x80 \xaf=\xe2\x80\xaf1024,\n 因为数学上的巧合,2 10 \n 大约为 10 3。\xc2\xa0 此应用程序的原因\n 是计算本身使用的二进制值是base\xe2 \x80\xaf2 \n 而不是用于SI 前缀的基 \xe2\x80\xaf10。\xc2\xa0\n NIST 对这种混乱的评论: \xe2\x80\x9c 面对这一现实,\n IEEE 标准委员会决定 IEEE 标准\n 将使用国际单位制前缀\n 的传统定义\xe2\x80\x9d,而不是 1024 的 kilo。[4]
\n
更多维基百科资源:
\n\n\n\n之前在超级用户上也解决过这个问题:
\n\n如果想笑,请看这个 xkcd 漫画:
\n\xe2\x80\x83\xe2\x80\x83\xe2\x80\x83
\n(但是,当然,不要认真对待它)。
归档时间: |
|
查看次数: |
2778 次 |
最近记录: |