对于数据在计算机中存储一直不是特别清楚,为了加深理解这个问题,特意浏览了一些相关资料,总算有些许收获,对此将一点心得总结。
计算机是以二进制方式进行存储数据的,这一点需要牢记。于是问题来了,当我们 int num=10的时候,数据是怎么进行存储呢?
我们先来看一下这个知识:
计算机电子元器件
内存条是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。
通过控制这些电路的开闭,我们可以得到很多种的组合信息,每一个元器件虽然只能有两个状态,但是数量确实呈现2的指数次增加,例如8个元器件就是256(2的8次方) 种不同的组合,16个元器件就是65536(2的16次方)中不同的组合。
1个元器件称为,一般情况下将8个元器件作为一个单元,称为一个字节,即1Byte,16个元器件即为2Byte,依次类推。
以下是单位换算:注意bit(一个元器件)
1Byte = 8 bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
现在,你知道1GB的内存有多少个元器件了吧.
现在回到上面的问题(假定你的计算机是32位的系统,也就是一次能处理4个Byte的数据),当int num=10时,num对计算机来说只是一个标识,他表示这需要4Byte的内存空间,并且存放的是一个整形的数字10,首先会将10转换为二进制,即1010,但是需要换算位32位的来满足计算机一次处理的能力,于是就要进行补位,所以就变成了00000000 00000000 00000000 00001010,这样计算机相当于就要分配4Byte(即32个元器件)来存储10这个信息,同时这个内存地址给到num,计算机正式通过这个地址来标记这个数字10
以上就是计算机数据存储的一个过程,其他类型的数据过程一样(谨记一点,计算机是通过元器件的组合,来存储数据信息,元器件只有开闭两种状态,决定了计算机以二进制方式进行处理,计算机上有很多的元器件)