老郑的博客

木叶飞舞之处,火亦生生不息!

计算机科学概论-数据存储

1.1 门和触发器
门是指一种设备,给出一种布尔运算输入值时,可以得出该布尔运算的输出值。
1.与门
与就是同时的意思,A和B或者更多的条件,同时具备时,才能有结果,只要有一个条件不具备,就没有结果
输入 输出
0 0 0
1 0 0
0 1 0
1 1 1
2.或门
或就是或者的意思,许多条件A,B,C等,其中至少有一个条件具备时,就有结果,只有所有条件都不具备时,才没有结果。
输入 输出
0 0 0
1 0 1
0 1 1
1 1 1
3.异或门
异或就是不一样的意思,如果两个条件都相等没有结果,如果两个值不等,就有结果。
输入 输出
0 0 0
1 0 1
0 1 1
1 1 0
4.非门
非就是相反的意思,具备条件A,没有结果,不具备条件A,则有结果。
输入 输出
1 0
0 1
5.与非门
输入 输出
0 0 1
1 0 1
0 1 1
1 1 0
6.或非门
或非门比或门前面多了个圆圈
输入 输出
0 0 1
1 0 0
0 1 0
1 1 0
运算符表
1.2 16进制编码系统
1.2 主存储器(内存)
为了存储数据,计算器包含大量的电路,每一个电路能够存储单独的一个位,这种位存储器被称为计算机的主存。
1.2.1 存储器结构(硬盘)
主存储器是以称为存储单元的课管理单位组织起来的,一个典型的存储单元容量是8位(一个8位的串称为一个字节,因此一个典型的存储单元容量是一个字节),通常假设存储单元的位是排成一行的,该行的左端称为高位端,右端称为低位端。高位端最左一位是高位数,低位端的最右一位是低位
并且每一个存储单元都被赋予一个唯一的地址。把所有的存储单元都看作是排成一行的,并且按照这个顺序从0开始编号,这样系统不仅为我们提供了唯一标识每个存储单元的方法,并且也给存储单元赋予了顺序的概念
1.2.2 存储器容量的度量
早期计算机存储器的大小通常以1024(2的10次方)个存储单元为度量单位,因此1024接近1000,所以计算机行业的许多人采用kilo标识,术语叫KB表示1024个字节。
1.3 海量存储器
通常是指磁盘、CD盘、DVD盘,海量存储系统的不足之处,一般都需要机械运动,因为主存储器的所有工作是由电子器件实现的,所以比起计算机主存储器来说,海量存储系统的数据存储存取需要花费更长时间
1.3.1 磁学系统
磁带
1.3.2 光学系统
DVD,CD
1.3.3 闪存驱动器
SD卡
1.3.4 文件存储以及检索
1.4 用位模式标识信息
1.4.1 文本的表示
ASCII使用长度为7位(bit)的模式来表示大小写英文字母,标点符号、数字0~9以及某些控制字符。今天ASCII被扩展为8位,方法就是在每个7位模式的最高位端添加一个0。ASCII不仅使所产生的代码的位模式与字节型存储单元相匹配,而且还提供了附加的128个位模式,可以表示除英语字母和关联的标点符号之外的符号。
备注:一个字节有8位,从00000000到11111111总共有256中排列组合方式,所以说一个字节可以表示256种状态
1.ASCII的不足:
  1. 扩展的ASCII中额外可用的位模式数不足以容纳更多的亚洲语言和东欧语言的字母表。
  2. 特定的文档只能在一个选定的 标准中使用符合,所以无法包含不同语种的语言文本的文档。
2.GB2312
  1. gb2312是对ASCII的中文扩展,一个小于127的字符的意义跟原来相同表示:大小写英文、标点符号以及控制符。
  2. 大于127的字符连接在一起就表示一个汉字,高位字节从0XA1用到0xF7,低位字节从0xA1到0xFE这样大约多出来了7000多个简体汉字 ,一般一个汉字用俩个字节来表示
3.GBK
gb2312对于汉字来讲还是不够了
  1. 只要低字节大于127就表示一个汉字的开始,不管后面跟的是不是扩展字符集里的内容
4.GB18030
对GBK的扩展,加上了几千个少数民族的字
基于(2)(3)(4),于是教科书上就出现了 1个字节==8个二进制位,1个英文字母==1个字符==1个字节,1个汉字==2个字节
5.Unicode弥补如上不足:
  1. unicode采用16位模式来表示每一个符号,因为unicode由65536个不同的位模式组成
6.UTF-8
UTF-8是unicode的实现方式之一,UTF-8最大的一个特点就是他是一种变长的编码方式,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
  1. 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
  2. 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
1个字节==8个二进制位==2^8==256
具体的表现形式为
0xxxxxxx:单字节编码形式,这和 ASCII 编码完全一样,因此 UTF-8 是兼容 ASCII 的;
110xxxxx 10xxxxxx:双字节编码形式;
1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式;
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式。
解码过程为:如果是0代表单字节,如果是1代表2字节,有几个连续的1代表有几个字节
1.4.2 数值的表示
数值25,如果用ascii编码符号存储,每个符号一个字节,那么总共需要16个二进制位(bit)。此外用16个二进制最大存储数是99。
二进制计数法是一种数值表示方法,只是用0和1,二进制的变换方式为:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
这个序列包括了整数0~8的二进制表示,尽管有些冗长范围,但是我们可以扩展这种计数技术,用于发现16个1组成的位模式可以表示数值65535的,这就证实了我们的说法:0~65535范围内的任何整数都可以利用16个二进制位进行编码
1.4.3 图像的表示
通常将图像表示为一组点,每一个点称为一个像素,每个像素的显示被编码,整个图像就表示成这些已编码像素的集合,这个集合称为位图
  1. 对于黑白图像,每个像素由一个位表示,位的值取决于相对应像素是黑还是白。
  2. 对于更精致的黑白照片,每个像素由一组位(通常是8个)表示
  3. 而彩色图像而言,每个像素通过更为复杂的系统来编码。有两种方法很常用,其中一种为RGB编码,每个像素表示3种颜色成分-红、蓝、绿,他们分别对应于光线的三原色,一个字节表示每一个颜色成分的强度,因此,要表示原始图像中的一个单独像素,就需要3个字节的存储空间(红、蓝、绿各自的强度在每个字节中表示,三原色可以组成任意色
1.4.4 声音的表示
1.5 二进制系统
1.5.1 二进制计数
1.5.2 二进制加法
二进制加法,只要大于等于2就进1(逢1进1),不同于10进制,超过10就进1。
1.5.3二进制中的小数
小数点左边的数字代表整数部分的数值,小数点右边的数字代表数值的小数部分,解释类似其他二进制,只不过多了小数的量值,也就是说小数点右边第一位的量值是如下图:
二进制小数加法和二进制加法一样:
十进制小数转换成二进制,小数部分乘2,然后取整
1.6 整数存储
1.6.1 二进制补码计数法
在二进制补码系统当中,最左边的二进制位指明所表示数值的符号,也就是符号位,其中符号位为1表示负值,符号位为0的模式表示正值。
取反的的规则是:低位遇到1,其后的所有值都取反。
溢出问题:在任意一个二进制补码系统中,都有表示数值大小的限制,当使用4位模式的二进制补码时,最大正整数是7,最小是-8,如果此时我们用5+4使用二进制补码计数法的时候,实际上它的结果会为-7。
1.6.2余码计数法
1.7 小数的存储
对于小数部分的数值,不仅要存储0和1还有其他小数点的位置。
1.7.1 浮点计数法
以一个字节存储的例子来说,浮点计数法首先要规定该字节的高位端为符号位,0代表存储的数值为非负,1代表数值为负。剩下的7位分为两组,称为域:
  1. 指数域:符号右边的3个位为指数域,指数域指定要移动的位数(也就是几个位是整数部分),剩下的是小数部分。符号位正数向右移动,符号位负数向左移动。
  2. 尾数域:余下的4个位为尾数域,也就是具体的值
1.7.2 截断误差
1.8 数据压缩
1.8.1 通用的数据压缩技术
数据压缩方案分为两类:
  1. 无损:压缩过程中不丢失信息
  2. 有损:压缩过程中会发生信息丢失,有损技术比无损技术提供更大的压损。
对于被压损数据由一长串相同的数值组成的情况,普遍使用称为行程长度编码的压缩技术,这是一种无损方法,过程是,将一组相同的数据成分替换成一个编码,指出重复的成分以及其在序列中出现的次数。
posted @ 2019-10-20 20:05  zyz1  阅读(736)  评论(0编辑  收藏  举报