数据存储
1.1 位和位存储
计算机中的数据是以 0 和 1 来表示的,这样的数字就称作「位」。其实所谓的 0 和 1 也是人们抽象出来表示的一种编码方式,计算机的主存储器(RAM)其实是以高低电平的方式存储的,人们为了更好的理解、表示,才抽象位存储的是 0 和 1 。
计算机这种机器更准确的说是电子计算机,是由超大规模的集成电路构成的,所以计算机内部都是以电平高低的方式表示数据的。其中「触发器」就是这样一种可以用来存储二进制位的电路,当然,可以存储二进制位的电路不仅仅只有这一种。
这就能够很好的解释为什么 RAM 断电时,数据就会丢失。
1.2 主存储器
为了描述存储器的大小,自然需要一种存储单位来描述。所以,计算机中将八个二进制位的总数当做一个存储单元,称作「字节」。
同时为了能够描述每一个单独的存储单元,人们把这所有的存储单元想象成一个顺序排列的队列,给每一个存储单元分配唯一的一个地址,按照顺序从 0 开始编号。
由于一个存储单元是 2 3 个二进制位,所以无论占据多少个存储单元的数据,必定是 2 的幂。所以人们将存储单位的进制设置为 1024,例如: 1 Byte = 2 10 bit,1 M = 1024 KB
因为主存储器采用了顺序编制的方式,所以可以任意访问这些独立的存储单元,这也解释了为什么主存储器的名字为 RAM (Random Access Memory,随机存储器)。
1.3 海量存储器
RAM 这种存储方式尽管速度极快,但是容量不够大,最为致命的缺点是一旦断电,数据就会消失。但是,人们急需要存储容量大且能够长期存储的设备,由此人们发明出了「海量存储器」。
「磁学系统」,将可以旋转,表面有磁介质的涂层用来存储数据。现在的硬盘就是把多个盘片安装在同一根轴上,磁头和盘片一起转动,以此来读或写数据。这里做的是机械运动,读写速度自然很慢。典型产品如:机械硬盘
「光学系统」,利用光学技术来存储数据。典型产品:CD 和 DVD
磁学系统、光学系统都是通过物理运动来读取和存储信息,意味着比电子电路的要慢,所以出现了「闪存」(flash memory)技术。
「闪存驱动器」,闪存系统中用电子信号把二进制位直接送到存储介质中,电子信号使得该介质中的二氧化硅的微小晶格截获电子,从而转为微电子电路的性质,因为这些微小晶格能够保持截获的电子很多年,所以很适合存储脱机数据。典型产品:SD 存储卡,U 盘
1.4 用位模式表示信息
现在我们已经知道了二进制位如何在计算机中存储,那么如何将我们产生的信息(声音、图像、文本等)编码为位模式呢?这就涉及到编码的问题了。
文本数据的表示。早期出现了 ASCII 编码用来将英文字符、常用符号表示为二进制码,随着计算机发展,对于非英语国家的语言怎么表示呢?出现了 Unicode 编码来编码更为广泛的字符。
数值的表示。这一点 ASCII 编码就可以完成,对于整数可以直接用二进制补码的方式存储,小数则可以用浮点计数法的方式存储。
图像的表示。通常将图像表示为一组点,每一个点就称作像素(pixel,是 picture element 的缩写),每个像素被编码,这些像素的集合就称作「位图」。黑白照片一个像素一般只需要一个位就可以表示,彩色图片的一个像素点可能需要三个字节来表示。图像的清晰度取决于像素的多少,所以图像越清晰,占据内存越多。
声音的表示。通常对声波的振幅进行采样,得到数值序列,进行编码,存储到计算机中,读取时则进行解码,重现声音。
1.5 二进制系统 & 1.6 整数存储 & 1.7 小数存储
略
1.8 数据压缩
为了方便数据的传输和存储,将数据压缩,使得其占用更小的内存非常有必要,由此引出了针对各种数据有各种压缩技术。
所以,对于通用数据、图像、音频和视频的压缩技术是不一样的,但是无论什么类型的数据,其压缩的本质就是:将已经编码为二进制的数据,再次编码,以减少数据所占用的内存。
1.9 通信差错
在数据的传输过程中,数据难免会发生差错,因此必须要有相应的纠错机制,常用的技术有「奇偶校验位」,「纠错编码」等等。