《计算机组成原理》教程第2章数据的表示.ppt_第1页
《计算机组成原理》教程第2章数据的表示.ppt_第2页
《计算机组成原理》教程第2章数据的表示.ppt_第3页
《计算机组成原理》教程第2章数据的表示.ppt_第4页
《计算机组成原理》教程第2章数据的表示.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理第2章数据的表示 内容 数据的表示方法和转换 数的定点表示和浮点表示 十进制数的表示 数据传送方式和校验 数据的表示方法和转换 进位计数制 进制 进位计数制之间的转换 进位计数制 进位计数制 用少量的数字符号 也称数码 按先后次序把它们排成数位 由低到高进行计数 计满进位 这样的方法称为进位计数制 基数 进位制的基本特征数 即所用到的数字符号个数 例如10进制 0 9十个数码表示 基数为10权 进位制中各位 1 所表示的值为该位的权 常见的进位制 2 8 10 16进制 十进制 Decimal 基数 10符号 0 1 2 3 4 5 6 7 8 9计算规律 逢十进一 或 借一当十 并列表示法 N10 dn 1dn 2 d1d0d 1d 2 d m十进制数的多项式表示 N10 dn 1 10n 1 dn 2 10n 2 d1 101 d0 100 d 1 10 1 d 2 10 2 d m 10 Mm n为正整数 其中n为整数位数 m为小数位数 di表示第i位的系数 10i称为该位的权 10为基值 例如 一个十进制数123 45的表示 123 45 1 102 2 101 3 100 4 10 1 5 10 2注 等式左边为并列表示法 等式右边为多项式表示法 二进制 Binary 基数 2符号 0 1计算规律 逢二进一或借一当二二进制的多项式表示 N2 dn 1 2n 1 dn 2 2n 2 d1 21 d0 20 d 1 2 1 d 2 2 2 d m 2 m其中n为整数位数 m为小数位数 di表示第i位的系数 2i称为该位的权 2为基值 十六进制 Hexadecimal 基数 16符号 0 1 2 3 4 5 6 7 8 9 A B C D E F计算规律 逢十六进一或借一当十六十六进制的多项式表示 N16 dn 1 16n 1 dn 2 16n 2 d1 161 d0 160 d 1 16 1 d 2 16 2 d m 16 m其中n为整数位数 m为小数位数 di表示第i位的系数 16i称为该位的权 例如十六进制数 2C7 1F 16的表示 2C7 1F 16 2 162 12 161 7 160 1 16 1 15 16 2 进位计数制之间的转换 R进制转换成十进制的方法十进制转换成二进制方法二进制和八进制之间的转换二进制和十六进制之间的转换 R进制转换成十进制的方法 按权展开法 先写成多项式 然后计算十进制结果 N dn 1dn 2 d1d0d 1d 2 d m dn 1 Rn 1 dn 2 Rn 2 d1 R1 d0 R0 d 1 R 1 d 2 R 2 d m R m 例 例如 写出 1101 01 2 237 8 10D 16的十进制数 1101 01 2 1 23 1 22 0 21 1 20 0 2 1 1 2 2 8 4 1 0 25 13 25 237 8 2 82 3 81 7 80 128 24 7 159 10D 16 1 162 13 160 256 13 269 十进制转换成二进制方法 一般分为两个步骤 整数部分的转换除2取余法 基数除法 减权定位法小数部分的转换乘2取整法 基数乘法 1 除基取余法 2327余数 21631 2811 2401 2200 2100 250 221 210 201 327 10 101000111 2 除基取余法 把给定的数除以基数 取余数作为最低位的系数 然后继续将商部分除以基数 余数作为次低位系数 重复操作 直至商为0 例如 用基数除法将 327 10转换成二进制数 2 减权定位法 将十进制数依次从二进制的最高位权值进行比较 若够减则对应位置1 减去该权值后再往下比较 若不够减则对应位为0 重复操作直至差数为0 例如 将 327 10转换成二进制数256 327 512327 256 71171 128071 64 717 3207 1607 807 4 313 2 111 1 01 乘基取整法 例如 将 0 8125 10转换成二进制小数 整数部分2 0 8125 1 62512 0 625 1 2512 0 25 0 502 0 5 11 0 8125 10 0 1101 2 乘基取整法 把给定的十进制小数乘以2 取其整数作为二进制小数的第一位 然后取小数部分继续乘以2 将所的整数部分作为第二位小数 重复操作 直至得到所需要的二进制小数 小数部分的转换 例如 将 0 2 10转换成二进制小数 整数部分0 2 2 0 400 4 2 0 800 8 2 1 610 6 2 1 210 2 2 0 400 4 2 0 800 8 2 1 610 6 2 1 21 0 2 10 0 001100110011 2 十进制混合小数转换二进制数 由整数与小数组成的十进制数 转为二进制数的方法 先将整数部分用除 取余法转换为二进制数 再将小数部分用乘 取整法转为二进制数的小数部分 再将得到的二进制整数部分与小数部分相加 得到的和即是相应的二进制数据 如 327 8125 10 101000111 1101327 1010001110 8125 0 1101 二进制与八进制 十六进制之间的转换 二八二十六00000000010008001100011100190102001021010A0113001131011B1004010041100C1015010151101D1106011061110E1117011171111F 二进制转换成八进制 例 10110111 01101 2 10110111 01101 2 267 32 8 八进制 267 32 二进制 010 110 111 011 010 二进制 10 110 111 011 01 低位补零 凑足三位 高位补零 凑足三位 八进制转换二进制 方法 直接将一位八进制数用三位二进制数表示即可 例如 123 46 8 001 010 011 100 110 2 1010011 10011 2 二进制转换成十六进制 例 110110111 01101 2转换成16进制 10110111 01101 2 1B7 68 16 十六进制 1B7 68 二进制 0001 1011 0111 0110 1000 二进制 1 1011 0111 0110 1 低位补零 凑足四位 高位补零 凑足四位 十六进制转换成二进制 方法 一位十六进制数用四位二进制数表示 例如 7AC DE 16 0111 1010 1100 1101 1110 2 11110101100 1101111 2 二进制的优点 见书 运算规则简单 易于实现数的状态简单节省设备 判断方便 无符号数和有符号数 补充 无符号数vs 有符号数 无符号数 不带符号位的数在数据处理的过程中 如不需要设置符号位可用全部字长来表示数值大小 如8位无符号数的取值范围是0 255 2 可用于计数 地址指针等有符号数 带符号位的数若有16位寄存器无符号数 0 65535一位符号位的有符号数 32768 32767 带符号数的编码 真值vs 机器数真值 正 负号加某进制数绝对值的形式称为真值 如二进制真值 X 1011y 1011机器数 符号数码化的数称为机器数如 X 01011Y 11011 机器数的表示方法 一旦符号数字化以后 符号和数值就形成了一种新的编码 在运算过程中 符号位能否和数值部分一起参加运算 如果参与运算 符号位又需要做哪些处理 这些问题都与符号位和数值位所构成的编码有关 机器数有四种表示方法即原码 补码 反码和移码 1 原码表示法 原码表示法用 0 表示正号 用 1 表示负号 数值位用真值的绝对值表示 整数的符号位与数值位之间用逗号 隔开 小数的符号位与数值位之间用小数点 隔开 约定 在本章中 n表示字长的有效位 数值位 X表示真值 注意 跟书中有点出入 例 完成下列数的真值到原码的转换X1 1011011X2 1011011 X1 原 0 1011011 X2 原 1 1011011 整数原码的定义 0的原码有两种表示方式 0 原 0 0000000 0 原 1 0000000原码整数的表示范围 最大值 2n 1 1最小值 2n 1 1 表示数的个数 2n 1 8位 127 127 25516位 32767 32767 65535 原码整数的表示范围 若二进制的位数分别是8 16 其原码表示的最大值 最小值及表示数的个数为 注意 最高位为符号位 有效数值位分别为7 15 原码整数的表示范围 最大值 2n 1 1最小值 2n 1 1 表示数的个数 2n 1 X1 X 0 X 原 1 X0 X 1 例 完成下列数的真值到原码的转换X1 0 1011011X2 0 10110110的原码有两种表示方式 0 原 0 0000000 0 原 1 0 0000000 1 0000000 X1 原 0 1011011 X2 原 1 1011011 小数原码的定义 最大值 1 2 n最小值 1 2 n 表示数的个数 2n 1 若二进制原码小数的位数分别是8 16位 求其该数表示的最大值 最小值及所能表示数的个数 8位 127 128 127 128 25516位 32767 32768 32767 32768 65535 原码小数的表示范围 注意 最高位为符号位 有效数值位分别为7 15 X1 X 0 X 原 1 X0 X 1 原码特点 表示简单 易于同真值之间进行转换 实现乘除运算规则简单 进行加减运算十分麻烦 本来是加法运算却可能要用减法器实现 当两个操作数符号不同且做加法运算时 先要判断两个数绝对值的大小 然后将绝对值大的数减去绝对值小的数 结果的符号以绝对值大的数为准 0的表示不惟一 2 补码表示法 以钟表对时为例说明补码的概念假设现在的标准时间是3点整 而有一只表已经6点了 为了校准时间 可以采用两种方法 1 逆时针 将时钟退3格 2 顺时针 将时钟向前拨9格这两种方法都能对准到3点 由此可以看出 减3和加9是等价的 就是说9是 3 对12的补码 可以用数学公式表示为 3 9 mod12 为取模相等 这里12是模数 上例中6 3和6 9之所以等价 是因为表指针超过12时 将12自动丢掉 最后得到 6 9 12 3 重要启示 负数用补码表示时 可以把减法转化为加法 补码的概念 模 计量器具的容量 或称为模数 N位字长整数的模值为2N4位字长的机器表示的二进制整数为 0000 1111共16种状态 模为16 24 一位符号位的纯小数的模值为2补码的定义 正数的补码就是正数的本身 负数的补码是原负数加上模 例 完成下列数的真值到补码的转换X1 1011011X2 1011011 X1 补 0 1011011 X2 补 27 1 x 1 0100101 整数补码的定义 X1 X 0 x 补 2 X0 X 1 mod2 例 完成下列数的真值到补码的转换X1 0 1011011X2 0 1011011 X1 补 0 1011011 X2 补 1 0100101 小数补码的定义 例 0的补码 补码中 零 只有一种表示形式 0 0000000 0 0000000 0 0000000 2 0 0000000 mod2 0 000000 1的补码 不妨补码的有效数值位为n根据定义 对于整数补码有 1 补 2n 1 1 1 11111 1 包括符号位一共n 1个1 根据定义 对于小数补码有 1 补 2 1 0 0 1 0 0 n个0 由此可见 1 既可以在整数范围内表示 也能在小数范围内表示 在计算机中有两种不同的补码表示 再看负数 2n的补码表示 2n 补 2n 1 2n 2n 1 1 0 0 n个0 因此 1 的补码小数表示与 2n 的补码表示结构相同 都是 符号位为1 数值部分为n个0 1 与 2n 分别是补码小数和补码整数中可以表示的最小负数 补码的表示范围 n位有效数值位 不包括符号位n位整数 2n 1 2nn位小数 1 2 n 1均能表示2n个数 原码与补码之间的转换 正数的原码和补码一致 对于负数 设n 4 x x1x2x3x4 x 补 2n 1 x 10 0000 x1x2x3x4 11111 00001 x1x2x3x4符号位除外 每位取反 末位加1 对小数原码也同样成立 反过来 由补码求原码也同样成立 原码与补码之间的转换 原码 补码正数 X 补 X 原负数符号位除外 每位取反 末位加1例 X 1001001 X 原 1 1001001 X 补 1 0110110 1 1 0110111 X 补 27 1 X 100000000 1001001 1 0110111100000000 10010011 0110111 补码到真值的转换 公式见P32例 x 补 10001 这一位表示符号位 x 10000 0 23 0 22 0 21 1 20 1111 由 X 补求 X 补 求机器负数 解 以小数补码为例 设 y 补 y0y1y2 yn第一种情况 y 补 0 y1y2 yn所以y 0 y1y2 yn 故 y 0 y1y2 yn则 y 补 第二种情况 y 补 1 y1y2 yn运算过程 连同符号一起将各位取反 末位再加1 设字长N 8位例 X 1001001 X 补 01001001 X 补 10110111 补码最大的优点就是将减法运算转换成加法运算 X 补 Y 补 X 补 Y 补例如X 11 10 1011 2Y 5 10 0101 2已知字长n 5位 X 补 Y 补 X 补 Y 补 0 1011 1 1011 10 0110 0 0110 6 10注 最高1位已经超过字长故应丢掉 变形补码 为了便于判断运算结构是否溢出 某些计算机还采用了一种双符号位的补码表示方法 称为变形补码 假定变形补码的有效数值部分位数为n 则负数变形补码的表示定义为 负整数 X 补 2n 2 X负小数 X 补 4 X因为这种补码小数的模数为4 因此也称模4补码 在双符号位中 左符是真正的符号位 右符用来判别 溢出 3 反码表示法 反码的概念 正数的表示与原 补码相同 负数的反码符号位为1 数值位是将原码的数值按位取反 就得到该数的反码表示 反码通常用来作为原码求补码或者由补码求原码的中间过渡 整数反码 0 X2n X 0 X 反 2n 1 1 X0 X 2n mod 2n 1 1 例 X1 1011011 X1 反 0 1011011X2 1011011 X2 反 1 010010011111111 101101110100100 0 反 00000000 0 反 11111111 X1 X 0 X 反 2 2 n X0 X 1 mod 2 2 n X1 0 1011011 X1 反 0 1011011X2 0 1011011 X2 反 1 01001001 1111111 0 10110111 0100100 小数反码 4 移码 增码 表示法 移码定义 X 移 2n X2n X 2n移码就是真值加上一个常数 例 X1 1010101 X1 补 0 1010101 X1 移 1 1010101X2 1010101 X2 补 1 0101011 X2 移 0 0101011 X 0时 0 移 27 0 1 0000000 0 移 27 0 1 0000000移码表示中0的也是唯一的 移码与补码符号位相反 引入移码的原因 当真值用补码表示时 由于符号位和数值部分一起编码 难于从补码形式上直接判断其真值的大小 例如 x 21 y 21 X 补 0 0010101 y 补 1 1101011 从二进制码看 会得出11101011 00010101的结论 码制表示法小结 X 原 X 反 X 补用 0 表示正号 用 1 表示负号 X 移用 1 表示正号 用 0 表示负号 如果X为正数 则 X 原 X 反 X 补 如果X为0 则 X 补 X 移有唯一编码 X 原 X 反有两种编码 移码与补码的形式相同 只是符号位相反 四种编码的表示 2 2数的定点表示和浮点表示 定点表示浮点表示 相关概念 数值范围 一种数据类型所能表示的最大值和最小值 数据精度 实数所能表示的有效数字位数 数值范围和数据精度均与使用多少位二进制位数以及编码方式有关 计算机用数字表示正负 隐含规定小数点 采用 定点 浮点 两种表示形式 1 数的定点表示方法 1 定点整数 小数点位置固定在数的最低位之后若采用原码 则范围为 2n 1 2n 1 2 定点小数 小数点位置固定在数的符号位之后 数值最高位之前 若采用原码 则范围为 1 2 n 1 2 n其中n表示数值位的位数 数符 数值部分 小数点位置 数符 数值部分 或 小数点位置 把字长分成阶码j和尾数S两部分 其根据就是 S为尾数 j为阶码 r为基数 或基值 在计算机中 基数可取2 4 6 8或16等 以基数r 2为例 数N可写成下列不同形式 为了提高数据精度以及便于浮点数的比较 在计算机中规定浮点数的尾数用纯小数的形式 规格化数 尾数最高位为1的浮点数称作规格化数 浮点数表示成规格化形式后 其精度最高 1 浮点数的表示 2 数的浮点表示方法 上溢 浮点数阶码大于最大阶码时 称为 上溢 此时机器停止运算 进行中断溢出处理 下溢 浮点数阶码小于最小阶码时 称为 下溢 由于此时 溢出 的数绝对值很小 通常将尾数各位强制为零 按机器零处理 此时机器继续运行 2 浮点数的表示范围 数符 数值部分 小数点位置 阶符 阶码的数值部分 下溢 浮点数的规格化 目的 字长固定的情况下提高表示精度的措施 增加尾数位数 但数值范围减小 采用浮点规格化形式 将非规格化数转换成规格化数的过程叫规格化 规格化方法 当基数为2时 尾数最高位为1的数为规格化数 1 向左规格化出现0 0 xx x就不是规格化数向左规格化规则 尾数左移1位 阶码减1 2 向右规格化尾数的绝对值大于1 向左破坏了规格化 向右规格化规则 尾数右移1位 阶码加1 规格化方法 当基数为4时 尾数最高两位不全为0的数为规格化数 1 向左规格化出现0 00 xx x就不是规格化数向左规格化规则 尾数左移2位 阶码减1 2 向右规格化尾数的绝对值大于1 向左破坏了规格化 向右规格化规则 尾数右移2位 阶码加1 当基数为8时 尾数最高两位不全为0的数为规格化数 1 向左规格化出现0 000 xx x就不是规格化数向左规格化规则 尾数左移3位 阶码减1 2 向右规格化尾数的绝对值大于1 向左破坏了规格化 向右规格化规则 尾数右移3位 阶码加1 若基数为16时 怎样规格 浮点数的表示范围和精度 一旦浮点数的位数确定以后 合理分配阶码和尾数的位数 直接影响浮点数的表示范围和精度 基数对数的表示范围也有影响 基数是隐含的 浮点机中一旦基数确定后就不再变了 一般来说 基数r越大 可表示的浮点数范围越宽 而且所表示的数其个数也越多 但r越大 浮点数的精度反而下降 例如 r 16的浮点数 引起规格化的尾数最高三位可能出现零 故与其尾数位数相同的r 2的浮点数相比 后者可能比前者多三位精度 3 定点数与浮点数的比较 数的表示范围 当浮点机和定点机中的数其位数相同时 浮点数的表示范围比定点数大得多 数的精度 当浮点数为规格化数时 其精度远比定点数高 浮点运算步骤比定点运算多 运算速度比定点低 运算线路比定点复杂 溢出判断定点数的溢出 根据数值本身判断浮点数的溢出 根据规格化后的阶码判断通用的大型机采用浮点数 或同时采用定 浮点数 小型 微型及某些专用机 控制机采用定点数 当需作浮点运算时 可通过软件实现 也可通过外加的浮点扩展硬件 如协处理器 来实现 例题1 1 求X 256 5的第一种浮点表示格式X 256 5 10 1

温馨提示

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

评论

0/150

提交评论