首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么字节会在2的幂中被提及?

为什么字节会在2的幂中被提及?
EN

Stack Overflow用户
提问于 2016-09-07 09:39:59
回答 6查看 7.5K关注 0票数 3

2^10 = 1KB、2^20 = 1MB等等。

除了,一个字节是8位,所以我不明白为什么我们要用2的幂来解释。说到2的幂的比特,我完全能理解,但是对于Bytes,我完全迷惑了。许多教科书/在线资源都是这样谈论它的,这里我遗漏了什么?

顺便说一下,我知道2^10 = 1024,大约等于10^3 = 1000。我不明白的是,为什么我们用2的幂来证明使用前缀和字节是合理的。

EN

回答 6

Stack Overflow用户

发布于 2016-09-07 09:47:03

我会问你真正在问的问题:为什么我们不使用10的幂?

我们将对此做出回应:为什么我们要使用10的幂?因为使用电脑的生命恰好有10根手指?

计算机将一切分解为1和0。

1024in binary = 10000000000 (2^10),这是一个很好的舍入数字。

以二进制表示的1111101000 = 1000 (不是2的偶数幂)。

如果你实际上使用的是一台低级别的计算机(即查看原始内存),那么使用存储方式为舍入的数字要容易得多。

票数 5
EN

Stack Overflow用户

发布于 2016-09-07 10:01:33

从你的问题中,我认为你理解了2和测量字节的幂。如果不是,其他答案会解释这一点。

你的问题是,既然位是真正的二进制,为什么不使用位而不是字节?

内存、磁盘空间等以字节而不是位来描述的原因与早期计算机的字寻址能力有关。在简单的计算机中,位、半字节和字节就是可用的内存量。第一台计算机有真正的电线将不同的部分连接在一起。8位可寻址能力是向前迈出的重要一步。

字节而不是位只是一种历史惯例。由于类似的历史原因,网络测量以(兆)比特为单位。

维基百科有一些有趣的details

票数 4
EN

Stack Overflow用户

发布于 2016-10-25 21:48:34

这是因为您不仅使用字节来存储数字,而且还使用字节来寻址存储数字的内存字节(甚至是其他地址)。对于1个字节,你有256个可能的地址,所以你可以访问256个不同的字节。例如,仅仅使用200个字节,仅仅因为它是一个舍入数字就是地址空间的浪费。

为简化起见,本例假设使用8位地址,在现代PC中通常使用64位地址。

顺便说一下,在硬盘驱动器的上下文中,存储器的量通常是一个整数,例如1TB,因为它们寻址的存储器空间是不同的。2的幂可用于大多数内存类型,如RAM、闪存驱动器/SSD、高速缓存。在这些情况下,它们有时会四舍五入,例如1024 KB为1 MB。

实际上,2的幂和10的幂有两种不同的名称。10的幂被称为千字节、兆字节、千兆字节,而2的幂被称为kibi字节、mebi字节和gibi字节。大多数人在这两种情况下都使用前一种方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39360061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档