为什么Bytes在2的权力中被谈论?

时间:2016-09-07 01:39:59

标签: byte

2 ^ 10 = 1KB, 2 ^ 20 = 1MB, 等等 等

除了,一个字节是8位,所以我不明白为什么我们使用2的幂作为解释。谈论2的权力比特我可以完全理解但是对于字节,我完全迷失了。许多教科书/在线资源以这种方式谈论它,我在这里缺少什么?

顺便说一句,我理解2 ^ 10 = 1024,大概是10 ^ 3 = 1000.我不明白为什么我们使用2的幂来证明使用前缀和字节的原因。

6 个答案:

答案 0 :(得分:3)

我会问你真正问过的问题:为什么我们不使用10的权力?

我们会回应:我们为什么要使用10的幂?因为使用计算机的生命形式恰好有10个手指?

计算机将所有内容分解为1和0。

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

1000 in binary = 1111101000(不是偶数幂2)。

如果您实际上正在使用较低级别的计算机(即查看原始内存),则可以更容易地使用以存储方式表示为整数的数字进行思考。

答案 1 :(得分:1)

从你的问题来看,我认为你了解两个权力和测量字节。如果没有,其他答案解释了这一点。

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

以字节而不是位来描述内存,磁盘空间等的原因与早期计算机的字可寻址性有关。在简单的计算机中,位,半字节和字节是可行的内存量。第一台计算机具有将各个位链接在一起的实际线路。 8位可寻址性是向前迈出的重要一步。

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

维基百科有一些有趣的details

答案 2 :(得分:0)

我不确定我是否得到你正在问的内容,但是:

2 ^ 10位= 1KBits

2 ^ 10字节= 1KBytes =((2 ^ 3)(2 ^ 10)位= 2 ^ 13位

这是两个不同的位数,你不应该将它们与彼此混淆

答案 3 :(得分:0)

好的,所以我想出了自己的问题。 2 ^ 3位= 2 ^ 0字节。因此,如果我们有2 ^ 13位并且想要将其转换为字节,那么2 ^ 13位= x * 1Byte /(2 ^ 3位)= 2 ^ 10字节,这是一个千字节。现在通过这种转换,对我来说,为什么他们选择以2的幂表示Bytes更为有意义。

我们可以用十,10 ^ 1个= 10 ^ 0十的幂来做同样的事情。然后,如果我们想要将10 ^ 25个转换为10个,我们得到10 ^ 25个= x *(10 ^ 0个/ 10 ^ 1个)= 10 ^ 24个,如预期的那样。

答案 4 :(得分:0)

原因是您不仅要使用字节来存储数字,还要使用存储数字(甚至是其他地址)的内存字节。使用1个字节,您有256个可能的地址,因此您可以访问256个不同的字节。例如,仅使用200个字节,因为它是一个更圆的数字将浪费地址空间。

此示例假设8位地址用于简化,通常在现代PC中有64位地址。

顺便说一句,在硬盘驱动器的情况下,内存量通常是一个整数,例如1 TB,因为它们以不同方式处理内存空间。 2的功率用于大多数内存类型,如RAM,闪存驱动器/ SSD,高速缓存。在这些情况下,它们有时是圆形的,例如1024 KB为1 MB。

实际上有两个不同的名称,2的幂和10的幂.10的幂称为千字节,兆字节,千兆字节,而2的幂称为kibi字节,mebi字节和吉比字节。在这两种情况下,大多数人只使用前者。

答案 5 :(得分:-1)

我认为您困扰的部分是从字节到KB到MB等的转换。我们都知道转换,但是让我澄清一下:

1024字节是一千字节。 1024 KB是兆字节,等等

就机器而言,它们并不关心这种转换!他们只是将其存储为x字节。老实说,我不确定是否在乎字节,仅处理位。

虽然我不确定,但我认为1024速率是某些人的任意选择。它接近公制中使用的1000。我认为与您所做的相同,例如“这与二进制文件无关!”。正如其他答案之一所说,它不过是“易于使用”。