第三章 - 数据存储
3.1数据类型
分为数字,文本,音频,图像,视频
计算机内部的数据
位(bit,binary digit)时存储在计算机中的最小单位。他是0或1。
位模式
为了表示数据的不同类型,应该使用位模式,他是一个序列,有时也被称为位流。通常长度为8的位模式被称为1字节
3.2.1存储整数(定点表示法)
定点表示法用于存储整数,在这个表示法里,小数点是假定的,但并不存储。
但是,用户或程序可能将整数作为小数部分为0的实数存储,这是可能的,当整数太大以至于无法定义为整数来存储。为了更有效的利用计算机内存,无符号和有符号的整数在计算机中存储方式是不同的。
整数通常使用定点表示法存储在内存中
无符号整数[0,+)
最大无符号整数的值为2n-1(n表示计算机中分配用于表示无符号整数的二进制位数)
1)存储无符号整数
步骤:1.将整数变成二进制数
2.如果二进制位数不足n位,则在二进制数的左边补0,使它的总位数为n位。如果位数大于n,则会导致溢出。
3)溢出
可以理解为首尾相连的数字[0,15]共4个位当15+1时,结果则会溢出为0
4)无符号整数的应用
计数,寻址,存储其他类型
符号加绝对值表示法
这种格式在存储整数中并不常用,但该格式用于在计算机中存储部分实数。
1)表示方法:
有效范围[0,2n-1]被分成了两个相等的子范围,前半个表示正整数,后半个表示负整数。注意:这里面有两个0:正0和负0。此表示法中,需要用1位来表示符号(0正1负),所以在n位单元中可存储的数字范围是[-(2n-1-1),+(2n-1-1)]
2)溢出情况同上
3)应用
符号加绝对值表示法不用于存储整数,而用于存储部分实数,此表示法通常用于采样模拟信号,比如,音频
二进制补码表示法(此表示法中只有一个0)
表示方法:无符号整数的有效范围[0,2n-1]被分为两个相等的子范围,第一个子范围用来表示非负整数,第二个子范围用来表示负整数。这两半按照左负右正的常规互相交换。此表示方法中,最左位决定符号,0正1负。
反码和补码
反码:反转各个位
补码:从右向左复制位,直到有1被复制,接着,反转其余的位(反码+1)
1)以二进制补码格式存储整数
将整数变成n位的二进制数
如果整数为非负数,则以其原样存储,如果是负数,则取其补码存储。
2)以二进制补码格式还原整数
如果最左位为1,则取其补码,如果最左位为0,则原样取出。
将该整数转换为十进制。
溢出情况同上
实数
浮点表示法:允许小数点浮动,我们可以在小数点左右有不同数量的数码。
一个数字的浮点表示法由3部分组成:符号,位移量和定点数
第一部分是符号,+/-
第二部分显示小数点应该左右移动构成实际数字的位移量
第三部分是小数点位置固定的定点表示法
eg:+ 7.425 X 1021(+7.425E21)
符号 定点部分 位移量(21)
规范化
在一个二进制数规范化之后,只存储一个数的三部分信息:符号,指数,尾数。
eg: 符号 指数 尾数
+ 26 X 1.000333
+ 6 000333
1和小数点是隐藏的,没有存储
符号:一个数的符号可以用一个二进制位来存储(0或1)
指数:指数定义为小数点移动的位数,幂可正可负,余码表示法是用来存储指数位的方法
尾数:指小数点右边的二进制数。尾数是作为无符号整数存储的。(书后还有一段p话,感觉矛盾,如果后面讨论到则回来补充)
余码
在该系统中,正的和负的整数都可以作为无符号数存储。为了表示正的或负的整数,一个正整数(一个偏移量)加到每一个数字中,将它们统一移到非负的一边。这个偏移量的值是2m-1-1,m是内存单元存储指数的大小。
eg
我们可以用4位存储单元在数字系统中表示16个数,分为[-7,-1]0[1,8],其中增加7个单位到每个整数中,可以统一的把数往右移。新系统称为余7,或者偏移量为7的偏移表示法。(自行脑补图像)
IEEE标准
单精度的浮点数
S E M
余127码 符号1位 指数8位 尾数23位
双精度的浮点数
余1023码 符号1位 指数11位 尾数52位
IEEE标准浮点数的存储步骤:
1.在S中存储符号
2.将数字转换为二进制
3.规范化
4.找到E和M的值
5.连接S,E,M
还原请自行解决
备注:书中的上溢和下溢有问题(个人觉得)
存储文本
ASCII
美国信息交换标准码,该代码使用7位表示每个符号,即定义了27个符号。
Unicode
使用32位来表示一个符号 最多可以表达232个符号。
存储音频
1.采样:在模拟信号上选择数量有限的点来度量他们的值并记录下来。
2.量化:将样本的值截取为最接近的整数值的一种过程。
3.编码:编码成位模式。
存储图像
光栅图:
扫描和像素
解析度:图像扫描中,每个单位上的像素量。
色彩深度:用于表现像素的位的数量。1.真彩色,使用24位来编码一个像素,每个RGB用8位表示。
2.索引色,从大的色彩集中选择一些颜色(通常是256种)并对其简历索引,对选中的颜色赋0~255之间的值。
文件体积大,易失真
矢量图:
一个图像被分解成几何图形的组合,每个几何形状由数学公式来表达。矢量图是由定义如何绘制这些形状的一系列命令构成的。