Memory 为什么1GB(1073741824)大约值10亿字节,但它也在4字节范围内,即32位=4字节?

Memory 为什么1GB(1073741824)大约值10亿字节,但它也在4字节范围内,即32位=4字节?,memory,byte,Memory,Byte,如何使1GB(1073741824)大致相当于10亿字节,但它也在4字节范围内,其中32位=4字节,8位=1字节,1073741824是30位数字?您忽略了GB和GiB之间的差异。一个是一千的倍数,另一个是一千二十四的倍数 背景: 位是一个“binary digit”的组合,它表示两种可能状态的一个值(例如真/假) 八个位组合在一起称为字节。为什么是八?因为从历史上看,字节是用于在计算机上编码单个文本字符的位数。想要代表字母“A”;那么你需要一个字节 通过这些简短的定义,我们可以看到4字节=32

如何使1GB(1073741824)大致相当于10亿字节,但它也在4字节范围内,其中32位=4字节,8位=1字节,1073741824是30位数字?

您忽略了GB和GiB之间的差异。一个是一千的倍数,另一个是一千二十四的倍数

背景:

位是一个“binary digit”的组合,它表示两种可能状态的一个值(例如真/假)

八个位组合在一起称为字节。为什么是八?因为从历史上看,字节是用于在计算机上编码单个文本字符的位数。想要代表字母“A”;那么你需要一个字节

通过这些简短的定义,我们可以看到4字节=32位,因为8*4=32。同样,我们理解千兆字节中的千兆=80亿位

现在问题来了:这些“分组”名称(如kilo、mega、giga)可以基于十进制以外的其他度量。另一个这样的度量是二进制度量。从1024位的初始分组开始,由于其大小接近1000位,因此被混淆地称为“KB”,我们可以将术语“giga”适当地设置为1073741824位,因为它是基本分组(1024^3)的倍数


大约从20世纪80年代开始,这些尺寸术语被故意混淆(出于营销目的)和混淆。在90年代后期,国际电工委员会(IEC)试图用标准化术语来纠正这种情况:缩写区分所使用的度量单位:KB(1000)与KiB(1024),GB(1000^3)与GiB(1024^3)。

两个提升到n位的位给出了一些存储器可能代表的值:

1 bit gives you two possible values: 0 or 1. 

2 bits gives you four values: 00, 11, 10, 01.  

3 bits gives you eight values: 000, 111, 001, 010, 100, 011, 110, 101.
...

32 bits gives you 2^32 or 4,294,967,296 possible values. 
如果你想用这个存储器表示一个负数,那么你必须用一个位来表示+/-符号。这给了你一半的负数范围,另一半的正数范围(我略读了关于零的细节,但你明白了)。这就是为什么无符号整数的大小是有符号整数的两倍


存储!=代表性。这就是编码主题的开始…

因为32位有符号整数中可以存储的最大值是2147483647。(1073741824可以存储为10位数字或6位36进制数字(HRA0HS))。想象一下你在纸上写的是1000000000艘船。1000000000艘船不适合放在那张纸上,但是数字-是的。你是在问如何用4个字节来表示大数字吗?@gregory是的,我补充了另一个答案——希望这有帮助。