现在看一下,对于整型数据int = 1,2,3,4,5(基本数据类型),对于这部分数据该怎么保存呢?抛弃掉高级数据类型(列表,字典等这些python这些封装好的数据结构),只记得整型、浮点型、字符型等基本数据类型。那么对于int=1,2,3,4,5这部分数据该怎么保存呢?首要的一点是要知道数据存贮的本质是什么?
内存
计算机的内存是存储数据并直接与CPU打交道的。既然是内存,那就是存储单元了,即组织在一起的一些单位。那么内存到底是什么样子的模型呢?内存的基本单位是以一个字节为作为索引单位的,且一个字节是8位。也就是在找数据的时候,标地址的时候是以一个字节为单位进行标记的。
上表表示计算机找数据的一个存储位置,比如告诉计算机有一个数据存的100,那么计算机的CPU需要去内存中去找,内存是一个连续的存储空间,假设100存储的位置如上表所示,那么我们需要告诉计算机或者CPU要去哪个位置去找这个100,那么我们需要对内存空间标注位置,如上表所示,我们只需要告诉计算机100所处的位置在0x03处,那么计算机就可以通过地址来找到数据100。计算机在是根据存储单元来标识的,在存储数据时,就需要多个存储单元,
如果有一个基本类型整型,那么它需要多少存储单元呢?对于32位机的化,基本整型需要4个字节,虽然有一个整数int = 1,但是在内存中需要转化为二进制进行存储的,结果为0000 0001(8位),而一个整型包含4个字节,则二进制后的值是0000 0000 0000 0000 0000 0000 0000 0001。其存储方式如下表所示
注:上表中的元素0和1因分布在表格中,这里为了方便没有一一对应
我们看到的是一个整型变量int=1,它落实在计算机内部的时候,实际上占了4个存储单元。
对于另外一种数据类型Char,字符串中的一个字符,且这1个字符需要占1个存储单元。那么问题就来了,类型不同,用的存储空间也不一样。 这是类型的第一个本质,他决定你在内存中利用多少个存储单元;第二个从取的角度考虑,即计算法在取二进制数据的时候,怎么看待它的问题,若是整型,那么取出的32位二进制就表示一个整型数据,而如果二进制表示的是4个字符(char),那么该二进制就表示了4个字符,所以不能一概而论。
顺序表
对与一组数据,比如整型数据int = 1,2,3,这三个整数是一个集合,然后想把它做成一个高级的数据类型,然后想把这三个数据存储