一、数据类型
首先必须得明白,在计算机中,任何文件、图片、视频等都是以二进制格式储存在储存介质中的一串编码,对于二进制数的每一位称作1bit(比特)。这里必须得再说一下,byte(字节)和bit(比特)不是同一个东西,1byte=8bit,必须区分好。
举个最简单的例子,你想在计算机中输入一个数15,由于15在二进制中为1111h,那么在计算机中我们就可以用4bit的储存空间来存储这个数15,这样就占去了内存中4bit的储存空间。
然而,如果每一个数我们都用恰好的bit数来储存就会造成很大的不方便,至于为什么不方便,具体去参考下内存与CPU传输数据的方式、CPU读取数据的方式与CPU处理数据的方式。于是,在计算机中我们一般约定储存数据所用的bit数为8,16,32,64···通过这样的规定,我们储存每一个数据的时候使用的内存大小就有了一定的限制,而一般来说8bit所能存储的数据量较小,所以一开始规定使用8bit来表示符号(char),同时也可以表示255以内的整数(int),32bit以上才会用来表示小数。
当然,这样规定是因为以前内存容量还比较小,内存很贵,因此内存的利用必须得非常节约。比如255能用8bit表示,那就绝对不会用16bit表示,但是现在随着内存越来越大,越来越便宜,而且CPU也从32位到了64位,那么索性所有整数、小数我都用64bit来表示也可以。通常所用的数据类型有整数(int),小数(float, double),符号(char),当然这些都是非常基础的东西,不是我们讨论的重点,只是作个引出,但是对理解数据的存储方式非常必要。
二、内存地址
至于内存地址是什么东西,这个可以用储物柜来类比。比如你去超市一般都有寄存物品的柜子,每一个柜子都有一个编号,每一个柜子里都可以放包等东西。那么对于内存,他也相当于有很多储存数据的“柜子”,那么我们要弄清楚的是对于一定大小的内存,到底有多少个柜子,每个柜子能放多少东西,这些弄明白了之后,对于数据如何存储在内存中就能了然于心了。
通常我们电脑的内存大小为8G,那么8G内存有多大呢,让我们来计算一下,首先
1GB=1024MB,1MB=1024KB,1KB=1024Byte,1Byte=8bit
上面就是储存单位的换算,那么8GB的内存就是8*1024*1024*1024Byte,为什么我最后不用bit作单位呢,因为之前已经说过了,在计算机中使用内存的时候,我们习惯8bit,8bit的使用,也就是一用就是1Byte,所以最后我们不需要看到底有多少bit。通过上面的换算,其实也可以猜出来对于8G的内存,相当于有
8*1024*1024*1024个储存东西的“柜子”,每个“柜子”能存放1Byte的数据
要编号这么多个柜子,我们使用2进制的话需要33位才能完全编好,这也就是为什么32位CPU没法使用8G的内存,因为32位的CPU总线只有32位,他只能搜寻4G的内存空间,别的空间已经超过他的地址簿了!而64位系统能搜寻的内存范围则远远大于了8G!