2 ^ 10 = 1KB, 2 ^ 20 = 1MB, 等等 等
除了,一个字节是8位,所以我不明白为什么我们使用2的幂作为解释。谈论2的权力比特我可以完全理解但是对于字节,我完全迷失了。许多教科书/在线资源以这种方式谈论它,我在这里缺少什么?
顺便说一句,我理解2 ^ 10 = 1024,大概是10 ^ 3 = 1000.我不明白为什么我们使用2的幂来证明使用前缀和字节的原因。
答案 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。我认为与您所做的相同,例如“这与二进制文件无关!”。正如其他答案之一所说,它不过是“易于使用”。