大学计算机基础信息的表示与存储ppt课件.ppt_第1页
大学计算机基础信息的表示与存储ppt课件.ppt_第2页
大学计算机基础信息的表示与存储ppt课件.ppt_第3页
大学计算机基础信息的表示与存储ppt课件.ppt_第4页
大学计算机基础信息的表示与存储ppt课件.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章信息的表示与存储 第二章信息的表示与存储 主要内容2 1二进制编码2 2数制及其转换2 3数值数据的表示与存储2 4字符编码2 5多媒体信息的编码 思考 我们日常生活中接触的进制 最常用的十进制星期 七进制小时 24进制 分钟 60进制 秒 60进制月份 12进制 1 二进制编码 2 1二进制编码及运算 理解0和1 在计算机中采用二进制存储和表示信息 为什么计算机中采用二进制而不采用我们熟悉的十进制计数呢 因为计算机中大量的电子元器件一般都具有两种稳定状态 如电压的高与低 晶体管的导通与截止 开关的开与关等 这两种状态正好用来表示二进制数的两个数码0和1 采用二进制使信息数字化易于物理实现 并适合用二值逻辑元件进行表示和处理 另外 二进制数运算规律简单 可靠性高 适合逻辑运算 理解0和1 集成电路中的每一条线路只有两种状态开 关 有电 没电 正电 负电 高电压 低电压等 方便起见 用数字1表示其中的一种状态 高电压 用0表示另一种状态 低电压 一条线路一次只能区分两种 21 状态1 高电压 0 低电压 两条线路一次可以区分四种 22 状态00 01 10 118条线路一次可以区分28种状态32条线路一次可以区分232种状态64条线路一次可以区分264种状态 在计算机中 中央处理器的线路的条数被称为计算机的字长 减法 0 0 00 1 1 有借位 1 0 11 1 0 加法 0 0 00 1 11 0 11 1 0 有进位 2 二进制数的算术运算 例2 2 例2 1 乘法运算规则 0 0 00 1 01 0 01 1 1 3 二进制数的乘法运算 例2 3 1101 2 1010 2 10000010 2 除法运算规则 0 0 无意义 0 1 01 0 无意义 1 1 1 4 二进制数的除法运算 二进制加法是基本运算 而二进制的减法则是采用补码运算 将减法转换成加上一个负数来实现的 二进制乘 除法运算可以通过加 减和移位来实现 因此在计算机内部所有的算数运算都是转化为若干步加法运算进行的 二进制数中小数点向右移1位 数值就扩大2倍 小数点向左移1位 数值就缩小2倍 例2 4 111011 2 1011 2 5 二进制的逻辑运算 逻辑运算是一种处理事件真假值的运算 也称为布尔运算 逻辑运算的的结果不表示数值的大小 而是表示某事件的成立与否 进行运算的是逻辑关系 计算机非常适合进行逻辑运算 二进制的0和1可以很容易的表示逻辑值的 条件成立 与 条件不成立 以及 真 True 与 假 False 的结果 要对多个事件进行判断时 就要用到逻辑值和逻辑运算 基本的逻辑运算包括3种 逻辑与 逻辑或 逻辑非 逻辑与 0 0 00 1 01 0 01 1 1 逻辑与真值表 逻辑与运算通常用符号 和 AND 来表示 两个条件象都成立 结果为真 二进制的逻辑运算是与进位无关的运算 又称按位运算 可以用简单的电路实现逻辑关系 开关A和B串联控制灯泡就是一种与运算 决定某事件的多个条件必须同时具备 该事件才能发生 两个条件有一个成立 结果为真 逻辑或 0 0 00 1 11 0 11 1 1 逻辑或真值表 逻辑或运算通常用符号 和 OR 来表示 灯泡的并联是一种或运算 决定某事件的多个条件中至少有一个具备 该事件就能发生 逻辑非 0 11 0 逻辑非真值表 逻辑非运算通常用符号 或 NOT 来表示 当开关A合上 电灯两端被短路 电流从开关A流走 灯不亮 某一事件的发生取决于条件的否定 决定某事件的条件不成立时 该事件才会发生 异或运算 0 0 00 1 11 0 11 1 0 逻辑与真值表 异或运算通常用符号 和 XOR 来表示 两个操作数相同为假 不同为真 利用3种逻辑运算还可以组合成其他几种复合运算 如与非 或非 与或非 异或等 例2 5计算10011AND11001的值 10011AND1100110001例2 6计算10011OR11001的值 10011OR1100111011 二进制数的逻辑运算举例 门 Gate 给出逻辑 布尔 运算输入值可以得到逻辑运算输出值的设备 可以通过微电子电路制造出门电路来实现门的功能 用在计算机中作为记录信息的一种方法 这些信息被编码成0和1的模式 超大规模集成电路就是将许多电子元件构造在一块芯片上 用来创建在控制电路中含有成千上万个触发器的微型设备 引脚 用于控制计算机的电子元器件每个都有许多与电路板相连的接线 引脚可以根据电压电平的状态表示成0和1 并以此来传送数据和指令 加法器是构成算数运算的基本单元 电子元器件的组合可以完成基于0和1的各种运算的硬件实现 所有计算都可转化为逻辑运算来实现 门电路 门电路的符号图 2 2数制及其转换 在讨论数的进位制之前 先介绍进位计数制的 基数 和 位权 的概念 因为无论采用哪种计数制表示数据 都涉及到 基数 和 位权 数制是用一组固定的数字和一套统一的规则来表示数目的方法 按照进位方式计数的数制称为进位计数制 在日常生活中 人们除了使用十进制外 也经常使用其他进制 如六十进制 十二进制等 由于计算机中所有信息都是以二进制数的形式表示和存储的 因此需要了解二进制和其他进制之间的转换与运算 我们先来看一个例子 十进制678 34我们怎么能正确识别这个数呢 根据每个数字所在的位置 我们可以判断数的大小 基数 位权 任何一种进位计数制表示的数都可以写成按权展开的多项式之和 1 数的进位计数制 进位计数制定义 进位计数制是一种数的表示方法 按进位的方法来计数 采用位权表示法 逢r进一 基数 每种进位计数制都有自己基本的符号 若某种进位计数制中使用了r个符号 0 1 2 r 1 r称为该进位计数制的基数 该计数进制称为r进制 位权 进位制中基数的某次幂值称为 位权 r进制 r进制数N可表示为 基数 r位权 rn 1 rn 2 r0 r 1 r 2 r m分别是某位的权数码 a 取值范围为0 1 2 r 1 Nr an 1 rn 1 a1 r1 a0 r0 a 1 r 1 a m r m 或 r进制数N可以表示为 按权展开的多项式之和即 该数各位的数码乘以所在位的权值的和 基数 位权 数码 1 十进制数 基数 10102 101 100 10 1 10 2分别是数的百位 十位 个位 十分位 百分位的权数码 0 1 2 3 4 5 6 7 8 9 2 二进制数 基数 2位权 2n 1 2n 2 20 2 1 2 2 2 m分别是数某位的权数码 0 1 小数点前的序号从0开始 整数位 小数位 3 八进制数和十六进制数 二进制数书写位数多 难以记忆和识别 为了便于书写和记忆 常用八进制数或十六进制数作为二进制数的助记符形式 不同进制数字的表示 2 用英文字母标识来标识进位制 字母 D 代表十进制 B 代表二进制 字母 O 代表八进制 H 代表十六进制 1 用括号外面加数字下表的方法标识进位制 10 代表十进制 2 代表二进制 8 代表八进制 16 代表十六进制 例如 123 10 123D 1011 2 1011B 56 8 56O 7BE3 16 7BE3H 2 不同进位计数制间的转换 1 r进制数 非十进制数 转化成十进制数各种进位制转换为十进制的方法 分别写出二进制数 八进制数和十六进制数的按权展开式 按十进制计算所得的值 即为转换后的十进制数 其中 ai为系数 数码 r为基数n为项数 例2 8 10101 2 1 24 0 23 1 22 0 21 1 20 24 22 1 21 10 举例 二进制转换为十进制 例2 9 3506 2 8 3 83 5 82 0 81 6 80 2 8 1 1536 320 6 0 25 1862 25 10 例2 10 A3E 5 16 10 162 3 161 14 160 5 16 1 2560 48 14 0 31 2622 31 10 举例 八进制 十六进制转换为十进制 2 十进制数转化成r进制数 方法 分整数和小数两部分分别处理 整数部分 除以r取余数 直到商为0 余数从右到左排列 除r取余 逆序排列 小数部分 乘以r取整数 整数从左到右排列 乘r取整 顺序排列 例2 11将 100 23 10化为二进制 结果为 100 23 10 1100100 0011 2 0011 例2 12 将 100 10分别化为八进制和十六进制数 结论 由十进制转换到r进制 可以把小数点作为分隔点 对于其整数部分和小数部分分别进行转换 然后再组合起来 结果为 100 10 144 8 64 16 3 二进制 八进制 十六进制数间的转换 每3位二进制对应一位八进制数 15 8 4 2 1 1111 211 8 0 2 1 1011 26 0 4 2 0 0110 2 每4位二进制对应一位十六进制数 例2 13将二进制数10110011 10101转换为八进制数 010110011 101010 B 263 52 O 26352 高位和低位各补1个0 例2 14将二进制数1011010101 101011转换为十六进制数 001011010101 10101100 B 2D5 AC H 2D5AC 高位和低位各补2个0 二进制转化成八 十六 进制整数部分 小数点为基准从右向左按三 四 位进行分组小数部分 小数点为基准从左向右按三 四 位进行分组不足补零 例2 15将八进制数 6415 64 8转换为二进制数 6415 64 8 110100001101 110100 26415 64例2 16将十六进制数 6A1D C4 16转换为二进制数 6A1D C4 16 0110101000011101 11000100 26A1D C4 八 十六 进制转换为二进制 将八进制数转换为二进制数 只需将1位八进制数转为3位二进制数 将十六进制数转换为二进制数 只需将1位十六进制数转为4位二进制数 2 3数值数据的表示与存储 主要内容1 有符号数的机器数表示2 数的原码 反码和补码表示3 定点数与浮点数 1 有符号数表示 数值数据是指通常所说的数或数据 它有正负和大小之分 也还有整数和小数之分 下面介绍有符号数的表示方法 由于在计算机中不能存储负号 只能存储0和1 因此 采用 0 和 1 来表示数值的正和负 即将表示数的位数拿出来一位表示数的符号 一般指定最左边一位表示数的符号 用0代表正数 用1代表负数 问题 十进制数6用八位二进制表示为 十进制 6如何表示 00000110计算机如何识别 6 符号位 0 表示正 1 表示负 若一个数用8位二进制表示 6和 6表示形式为 6 6 这种用0和1表示数的符号的数称为机器数 也称为数的原码 但是实际上计算机中不是用这种方法存储有符号数的 为什么呢 机器数在进行运算时 若将符号位和数值位同时参与运算 则会得出错误的结果 例2 17 X 6 X 原码 00000110Y 3 Y 原码 10000011X Y 6 3 6 3 3原码相加 得到 900000110 1000001110001001 9 原码相减 得到 300000110 1000001110000011 3 数的原码 反码和补码表示 原码不能够直接用来计算 既然不能用原码直接运算 需要找出一种方法解决 在计算机中 用补码存储数据 在进行运算时 直接用补码进行运算 减去一个数相当于加上相应负数的补码 减去一个数转换为加上一个负数 数的符号也可以当做数值一起参与运算 补码存储数据为计算机硬件设计提供了方便 计算机中可以只有加法器 不需要减法器 那么如何从原码转换为补码呢 日常生活中我们如何调整时钟呢 倒拨指针 也可以正拨指针 为了运算方便 计算机中引入了反码和补码的概念 将加 减法运算统一转换为补码的加法运算 计算机中数据存储与时钟一样 是个模数系统 超过了它所能表示的最大值后 就又会恢复到初始状态 当运算结果超出其表示范围时 会产生 溢出 得出不正确的结果 数表示的范围受到字长的限制若表示一个整数 用8位 最大值为 即27 1 127用16位 最大值为11111 即215 1 32767 数的原码 反码和补码表示 表示数的范围 127 1271111111101111111 整数X的原码表示是 整数的符号位用 0 表示正 1 表示负 其数值部分是该数的绝对值的二进制表示 在原码表示中 0有两种表示方法 正数的原码 反码和补码形式完全相同 而负数则有不同的表示形式 2 反码 负数的反码是对该数的原码除了符号位外各位取反 在反码表示中 0有两种表示方法 反码是求补码的中间过渡 7 原 10000111 0 原 10000000 补码表示中 0有唯一的表示形式 即 0 0 00000000因此 可以用多出来的编码来扩展补码的表示范围值为 128 最高位1即可看做符号位负数 又可表示为数值 表示数的范围 128 127 负数的补码是在其反码的基础上末位加1 3 补码 一个数的补码的补码即是其原码本身 7的原码 10000111补码 11111001补码的补码 10000111 例2 18 利用补码进行 6 6 运算 X 6 X 原 00000110 X 补 00000110Y 6 Y 原 10000110 Y 补 11111010两数相加00000110 6的补码 11111010 6的补码100000000 0的补码 例2 19 利用补码进行 6 3 运算 X 6 X 原 10000110 X 补 11111010Y 3 Y 原 00000011 Y 补 00000011两数相加11111010 6的补码 00000011 3的补码11111101 3的补码11111101为负数 再对其求补码以得到其原码 得到10000011 因此计算结果为 3 2 无符号数表示 在无符号数据处理的过程中 如不需要设置符号位时 可用全部字长来表示数值大小 如8位无符号数的取值范围是0 255 255 2 同样位数的数据在机器中 采用无符号表示或有符号表示其取值范围是不同的 3 实数的表示 定点数分为定点整数和定点小数 1 定点数表示 小数点固定在机器数的最低位之后 采用隐含的方法表示 不占位置 定点整数只有整数部分 表示数据精确 但数的范围有限 定点数是指规定小数点固定在某一位置上 浮点数是指小数点位置可以任意浮动 有符号位 1 定点数表示 小数点固定在符号位之后 定点小数只有小数部分 定点数表示方法使数的表示范围受到限制 当超出规定的范围时 就无法表示了 因此 就有另外一种表示数的方法 即浮点数 2 浮点数表示 尾数的位数决定数的精度阶码的位数决定数的范围 科学记数法表示 十进制数 1234 567可表示为 1234 567 1 234567 103采用以2为底的科学记数法存储 N 数符 尾数 2阶码 其中 数符0为正 1为负 尾数和阶码都用二进制数表示 浮点数是指小数点位置不固定的数 它既有整数部分又有小数部分 利用浮点数可以扩大实数的表示范围 IEEE754标准 美国电气电子工程师协会IEEE 1985 将浮点数分成两类 单精度数用32位表示 数符1位 阶码8位 尾数23位双精度数用64位表示 数符1位 阶码11位 尾数52位为了处理负指数的情况 实际数据的指数存储时数值加上127 27 1 即二进制的 后进行存储 规定非零浮点数的尾数最高位是1 但尾数不存储小数点前的最高位 只存储小数部分 由于不同计算机所选的基值 尾数和阶码的长度不同 因此对浮点数表示有较大差别 这就不利于软件在不同计算机之间的移植 为此 1985年 美国电气电子工程师协会IEEE制定了IEEE754标准 单精度浮点数机内存储格式 占4个字节 32位 例子 十进制实数型数据 1 5在计算机中的存放形式 数符 1 1位 阶码 0 01111111 原数值加上127 共8位 尾数 1 23位 十进制单精度浮点数 1 5的机内存储形式如下 将十进制数转换为二进制数 1 5 10 001 1 2 1 1 20 2 浮点运算的不精确性能够产生灾难性的后果 典型案例 1991年2月25日 在海湾战争期间 沙特阿拉伯的达摩地区设置的美国爱国者导弹 拦截伊拉克的飞毛腿导弹失败 飞毛腿导弹击中了美国的一个兵营 造成28名士兵死亡 98人受伤 美国GAO对失败原因做了详细的分析 并且确定潜在的原因在于一个数字计算不精确 由于在控制软件中的一个错误产生了自系统启动以来时间的不正确的计算结果 这是由于实数的不精确的二进制表示所造成的舍入错误累积所致 这个系统在此期间已经运行了大约100小时 舍入错误的累积大于0 34秒爱国者导弹系统的内置时钟 其实现类似一个计数器 每0 1秒加1程序用一个24位的寄存器来存放近似于1 10的二进制小数值 浮点数操作总结 研讨 如何改进重启程序课后阅读GAO报告 美国官方调查报告 效果理解二进制数值表示的范围和精度计算思维不同于数学思维 思考 2 4字符编码 主要内容1 字符编码2 汉字编码 128个常用字符 用7位二进制编码 从0到127 编码唯一控制字符34个 0 32 127 普通字符 94个 例如 a 字符的编码为1100001 61H 对应的十进制数是97 空格20H32 0 9 30H 39H48 57 A Z 41H 5AH65 90 a z 61H 7AH97 122 1 字符编码 ASCII码 AmericanStandardCodeforInformationInterchange 目前在微型计算机中普遍使用的字符编码是ASCII码 每个字符采用7位二进制数进行编码 27可以表示128种符号 包括了计算机处理信息常用的英文字母 数字符号 算术与逻辑运算符号 标点符号等 每个ASCII码字符用一个字节 8位 进行存储 第1位为0 后7位用来编码 在ASCII字符编码表中 每种符号唯一的对应着一个编码 数字0 9 字母A Z和a z在表中都是顺序排列的 小写字母比大写字母的编码值大32 这里需要记住几个常用的编码 例如 字符 0 的编码不是整数 而是二进制的 30H 对应十进制数为48 字母 A 的ASCII编码是 41H 对应的十进制数为65 a 的ASCII编码是 61H 对应的十进制数为97 掌握了这几个字符的编码 就可以容易写出后续字母数字的ASCII编码 还有一些扩展编码 采用8位编码 可以有256个编码状态 2 汉字编码 区位 拼音 五笔等 GB2312 1980标准汉字字符集 规定在不同的汉字系统中进行汉字交换时使用的编码 简称国标码 汉字在机器内部的表示形式 是内部存储 处理 传输汉字的代码 每两个字节表示一个汉字 为了区分西文字符的机内码 每个字节的最高位设为1 每个汉字字形码在汉字字库中的相对位移地址 汉字在计算机中也是字符 也要表示为二进制 也应有统一的编码 但是汉字字符多 字型复杂 处理起来比西文字符复杂的多 要解决输入 存储 交换和显示的编码问题 1 汉字输入码 数字编码 用4位数字代表一个汉字 如国标区位码 电报码等 GB2312标准将6763个汉字和700多个符号分成94个区 每个区存放94个汉字和符号 由区号和位号构成区位码 无重码 但是记忆困难 如 大2083工2504十进制 拼音编码 以汉语拼音为基础的输入法 常用有智能ABC 微软拼音 紫光 全拼 搜狗等 简单易学 重码 拼音为基础 字形编码 以汉字的形状确定的编码 如五笔字型 表形输入法 无重码 快 专业人员 汉字国标码 GB2312 80 也称汉字交换码 共收录7445个汉字符号 能表示6763个常用汉字和一些符号 每个汉字用两个字节 以16进制表示 2 汉字交换码 为了在计算机中使用汉字 1981年 国家标准局公布了GB2312 80标准汉字字符集 规定了在不同的汉字系统中进行汉字交换时使用的编码 简称国标码 汉字机内码是汉字在机器内部的表示形式 是计算机内部存储 处理 传输汉字的代码 为区别ASCII码 机内码采用将汉字国标码的每个字节的最高位设为1 形成了在计算机内部用来进行汉字存储 运算的编码 以汉字 大 为例 国标码为3473H 二进制 0011010001110011国标码二进制 1011010011110011机内码B4F33473H 8080H B4F3H 得到机内码为B4F3H二进制 10000 国标码转换为机内码 国标码 8080H 机内码 3 汉字机内码 汉字区位码国标码汉字机内码大20833473H 00 B 1011010011110011 B工25041904H 000110010 B 1001100110000100 B 计算机处理字符数据时 当遇到最高位为1的字节 便将该字节连同其后续最高位为1的另一个字节看做一个汉字 当遇到最高位为0时 则可看做一个ASCII码西文字符 这样就实现了汉字 西文字符的共存和区分 计算机是如何区分西文字符与汉字的编码呢 4 汉字字形码 为了能在屏幕上和打印机上输出汉字 必须将汉字的字形以点阵的形式事先存入计算机中 字形码也称为汉字的字模 汉字的字形码通常有两种表示方式 即点阵和矢量表示方式 点阵字形的构成是把每个汉字放在一个矩型区域里 对每一个位置用二进制的0和1来编码 有笔划经过的地方为 1 即发亮 无笔划经过的地方为 0 发暗 把这样形成的二进制序列存储起来 就得到了汉字的点阵字型 当需要显示一个汉字时 根据汉字的机内码 在字库中检索到汉字的字形点阵 把对应的二进制编码序列放入显示存储器中适当的地方 就可在在屏幕上显示该汉字 点阵表示 用点阵表示的码 是汉字的输出形式 它把汉字排成点阵常用16 16 24 24 32 32 48 48或更高二进制位来存储 一个16 16点阵的汉字字形占用32个字节 24 24要占用72个字节 编码 存储方式简单 无需转换直接输出 这类点阵字库汉字最大的缺点是不能放大 一旦放大后就会发现文字边缘的锯齿 ASCII码的字母存储的也是字母的图片 编码与点阵图片一一对应 需要时调用这个图片 就可以显示对应的字符 矢量表示 该方式存储的是描述汉字字形的轮廓特征 矢量方式与点阵相反 矢量字库保存的是对每一个汉字的描述信息 比如一个笔划的起始 终止坐标 半径 弧度等等 需要时 通过计算机的计算 由汉字字形描述程序生成所需大小和形状的汉字点阵 矢量表示方式可以得到高质量的汉字输出 与最终文字显示的大小和分辨率无关 放大后 不会变形 Unicode国际标准编码标准 为了规范编码 采用双字节编码统一表示世界上的主要文字 键盘输入与屏幕显示 一个汉字从输入到输出 需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论