3. 数字存储
内容
数据类型
数字, 文本, 音频, 图像, 视频
2. 计算机内部的数据
- 位
bit binary digit. 0或1. 位代表设备的某一状态 - 位模式/位流: 由一定长度的位组成. 通常长度为8的位模式被称为1字节
存储数字
- 需要解决的问题
- 如何存储数字的符号
- 如何显示十进制小数点: 定点和浮点.(整数和实数分别都可以用定点和浮点表示. 为避免浪费精度,分别采用不同方式存储)
- 整数通常使用定点表示法存储在内存中
- 整数: 完整的数字.没有小数部分
- 无符号表示法: 不能区分正负数
- 存储
- 将无符号整数变为二进制数
- 如果二进制位数不足n, 在左边补0. 使总位数为n.
- 如果位数大于n, 该整数无法存储. 因为会导致溢出情况.
- 溢出: 位数n是有限的, 因此可以表达的整数范围是有限的.
- 最大无符号整数: \(2^n-1\). (n是计算机分配用于表示无符号整数的二进制位数)
- 溢出后,会丢弃最右边的位, 只保存从右到左n位.
- 无符号整数的优点: 因为不必存储符号,因此可以提高存储效率.
- 无符号整数的应用
- 计数
- 寻址
- 存储其他数据类型: 文本, 图像, 音频和视频等.
- 存储
- 符号+绝对值表示法
- 存储
- 用最左位的1个二进制位存储符号(0表示正, 1表示负).
- 在n位的存储单元中,仅可以用n-1位表述数字的绝对值.最大的正数值仅为无符号最大数的一半
- n位存储单元存储的数字范围是: \(-2^{n-1}-1\)至\(+2^{n-1}-1\)
- 有2个0. +0(1000)和-0(0000).
- 溢出
- 符号+绝对值表示法中的溢出分为正溢出(变为负数)和负溢出(变为正数)
- 应用: 常用于采样 模拟信号?
- 存储
- 补码和反码运算
- 反码
- 应用范围: 可应用于任何整数,无论正负
- 运算规则: 每一位按位取反
- 原(二进制)整数进行两次反码运算, 可以得到原来的整数.
- 补码
- 应用范围: 可应用于任何整数,无论正负
- 运算规则: 从右边复制位, 直到有1被复制. 然后反转其余的位
- 原(二进制)整数进行两次补码运算, 可以得到原来的整数.
- 反码
- 二进制补码表示法: 可以区分正负数
- 存储(二进制整数->补码)
- 正数: 原样存储
- 负数: 转补码存储
- 读取(补码->二进制整数)
- 最左位是1: 取补码
- 最左位是0: 原样读取
- 仅有1个0
- 溢出
- 正溢出
- 负溢出
- 存储(二进制整数->补码)
- 无符号表示法: 不能区分正负数
- 实数: 带有整数和小数部分的数字
- 定点表示法: 总是损失实数精度或小数精度
- 科学计数法(用于10进制)
- eg: \(+742500 = +7.425\times10^{5}\). 也可以表示为\(+7.425E5\)(以10为底是显而易见的)
- eg: \(-0.032 = -3.2 \times 10^{-2}\). 也可以表示为\(-3.2E-2\)
- 浮点表示法(用于2进制)
- 组成: 符号, 位移量, 定点数
- 规范化: 科学计数法和浮点表示法都在小数点左边使用唯一的非0数码.
- (2进制数的)符号, 指数和尾数
- eg:
- 原数: \(+1000111.0101\)
- 规范化: \(+1.0001110101 \times 2^6\)
- 规范化后的符号: 1
- 规范化后的指数: 6
- 规范化后的尾数: 0001110101(最左位1没有存储.是隐含的)
- (规范化后的)符号: 用一个二进制位表示(0或1).
- (规范化后的)指数: 小数点移动的位数. 可以为正负数(对应整数和小数部分)
- (规范化后的)尾数: 小数点右边的二进制数
- 尾数作为无符号整数存储的
- 尾数不是整数, 只是像整数那样存储的小数部分
- 在整数中, 在数字左边插入0, 值不会改变
- 在尾数中, 在数字左边插入0, 值将会改变
- 余码: 指数作为无符号位表示
- 偏移量: n位指数的偏移量为\(2^{m-1}-1\)
- 存储: 指数增加偏移量个单元.使可以用无符号整数表示正负指数
- 如: 4bit位可以被用来表示为\(-7 - +8\)的指数,增加7后可用\(0-15\)(全部为正数)来表示指数.
- eg:
- IEEE标准
- 单精度: 32位. 别名: Excess 27(余127码).
- 符号(Sign Bit.简称'S'): 1位
- 指数(Exponent. E): 8位
- 指数偏移量: 127
- 尾数(Mantissa. M): 32位
- 双精度: 64位. 别名: Excess 1023(余1023码).
- 符号(S): 1位
- 指数(): 11位
- 指数偏移量: 127
- 尾数: 52位
- IEEE标准浮点数的存储步骤
- 在S中存储符号
- 将数字转化为二进制
- 规范化
- 找到E和M的值
- 连接S, E和M
- 单精度: 32位. 别名: Excess 27(余127码).
- 浮点数的上溢和下溢
- 存储0
- 截断错误
存储文本
- 任何语言中, 文本的片段 是用来表示该语言中某个意思的一系列的符号.
- 不同的语言中有不同数量的符号,因此可能需要不同的位模式才足以表示它们.
- 位模式长度和符号数量是对数关系.如: 如果需要2个符号, 位模式长度是1 (\(log_22 = 1\)).
- 可以用位模式来表示任意一个符号.如,4个符号组成的文本"CATS"用4个位模式表示.
- 代码: 不同的位模式集合被用来表示一定的文本符号.这样的集合称之为代码
- 表示符号的过程称为编码
- 常用代码
- ASCII. 用7位表示每个符号. 现在ASCII 是 Unicode的一部分
- Unicode. 使用32位表达来自世界上不同语言的符号.
存储音频
- 文本和音频的区别
- 文本是数字数据的一个例子. 可以数出文字的数量.
- 音频是随时间变化的实体, 不可数. 只能在每一时刻度量声音的密度.
- 音频是模拟数据的例子. 即使能够在一段时间内度量所有值, 也不能全部存储在计算机内存中. 因为可能需要无限数量的内存单元.
- 采样
- 采样 意味着在模拟信号上选择数量有限的点度量并记录值.
- 采样率 样本数量依赖于模拟信号中变化的最大数量. 如果信号是平滑的, 需要很少的样本. 如果样本变化剧烈, 则需要更多的样本.
- 量化 将样本值截取为最接近的整数值的过程.如: 17.2截取为17, 17.7截取为18
- 编码 量化后的样本值被编码为位模式
- 每样本位/位深度 每个样本系统用多少位数据存储数据
- 位率 位率R=位深度B每秒样本数S. 如: 每秒40k个样本,每样本位是16, 位率R=40k16=640k b/s=640KB/s.
- 声音编码标准
- 有损压缩和无损压缩
- MPEG
- MP3(MPEG layer 3)(有损压缩) R=44100*16=705600 b/s
存储图像
存储图像在计算机中使用光栅图或矢量图.
光栅图
对图像的采样称为扫描.
缺点: 文件体积太大. 放大图像会变得模糊.
- 解析度 图像处理中的扫描率(每英寸的符号或线条 需要记录多少像素)
- 色彩深度 用于表现像素的位的数量, 即色彩深度.人眼相应光线中的红, 绿, 蓝 三原色(RGB).
- 真彩色: 使用24位编码一个像素. 每个三原色用8位表示.
- 索引色: 使用8位索引编码一个像素. 从色彩集(真彩色)中选择一些颜色作为索引(通常是256种).
- 图像编码标准
- JPEG 使用真彩色(压缩图像减少位的使用)
- GIF 使用索引色
矢量图
矢量图不存储每个像素的位模式, 图像被分解为几何图形的组合, 几何形状用数学公式表达.
显示或打印图像时, 根据图像的尺寸重新设计图像大小并用相同的公式画出.
也被称为几何模型或面向对象图形.
存储视频
视频是图像(称为帧)在时间上的表示.
换言之,视频是随空间(单个图像)和时间(一系列图像)变化的信息表现.
视频通常被压缩存储.
浙公网安备 33010602011771号