




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
原码 反码和补码的概念原码 反码和补码的概念 本节要求 掌握原码 反码 补码的概念 知识精讲知识精讲 数值型数据的表示按小数点的处理可分为定点数和浮点数 按符号位有原码 反码和补码三种形式 的机器数 一 计算机中数据的表示方法一 计算机中数据的表示方法 1 数的定点与浮点表示 数的定点与浮点表示 在计算机内部 通常用两种方法来表示带小数点的数 即所谓的定点数和浮点数 定点数 是小数点在数中的位置是固定不变的数 数的最高位为符号位 小数点可在符号位之后 也可在数的末尾 小数点本身不需要表示出来 它是隐含的 缺点 只有纯小数或整数才能用定点数表示 浮点数 小数点在数中的位置是浮动的 不固定的数 一般浮点数既有整数部分又有小数部分 通常对于任何一个二进行制数 总可以表示成 P S 均为二进制数 为 的阶码阶码 一般为定点整数 常用补码表示 阶码指明小数点在数据中的位置 它决定浮点的表示范 围 为 N 的尾数尾数 一般为定点小数 常用补码或原码表示 尾数部分给出了浮点数的有效数字位数 它决定 了浮点数的精度 且规格化浮点数 0 5 S 0 1B 1 2 D 2 1 D 0 11B 1 2 1 4 D 2 1 2 2 D 0 111B 1 2 1 4 1 8 D 2 1 2 2 2 3 D 在计算机中表示一个浮点数其结构为 阶码部分 尾数部分 阶符阶数尾符尾数 Ef E1E2 Em Sf S1S2 Sn 假设用八个二进制位来表示一个浮点数 且阶码部分占 4 位 其中阶符占一位 尾数部分占 4 位 尾符也占一位 若现有一个二进制数 N 2 可表示为 110 0 1011 则该数在机器内的表示形式为 B 10110B 21 D B 1011B 22 D B 101 1B 23 D B 10 11B 24 D B 1 011B 25 D B 0 1011B 26 D 0 1011B 2110 B 011001101 一个浮点形式的尾数 S 若满足 0 5 S 1 且尾数的最高位数为 1 无无效的 0 则该浮点数称为规 格化数 规格化数可以提高运算的精度 S 为原码表示 则 S 1 规格化数 S 为补码表示 N 为正数 则 S1 N 为负数 则 S1 二 原码 反码和补码二 原码 反码和补码 1 机器数与真值 机器数机器数 在计算机中数据和符号全部数字化 最高位为符号位 且用 0 表示正 1 表示负 那么把包 括符号在内的一个二进制数我们称为机器数 机器数 机器数 有原码 反码和补码三种表示方法 有原码 反码和补码三种表示方法 比如 十进制中的数 3 计算机字长为 8 位 转换成二进制就是 如果是 3 就是 那么 这里的 和 就是机器数 真值真值 用 号表示的二进制数 机器数因为第一位是符号位 所以机器数的形式值就不等于真正的数值 例如上面的有符号数 其 最高位 1 代表负 其真正数值是 3 而不是形式值 131 转换成十进制等于 131 所以 为区别起见 将 带符号位的机器数对应的真正数值称为机器数的真值 例 0000 0001 的真值 000 0001 1 1000 0001 的真值 000 0001 1 2 原码 反码和补码的概念 1 1 概念 概念 机器数 机器数 有原码 反码和补码三种表示方法 有原码 反码和补码三种表示方法 原码原码 是最简单的机器数表示法 其数符位用 0 表示正 1 表示负 其余各位表示真值本身 即用第一位表示符号 其余位表示值 比如如果是 8 位二进制 1 的原码是 1 的原码是 反码反码 正数的反码同原码 负数的反码为除符号位外 其它各位按位取反 正数的反码是其本身 负数的反码是在其原码的基础上 符号位不变 其余各个位取反 1 的反码是 1 的反码是 补码补码 正数的补码同原码 负数的补码为反码加 1 负数的补码是在其原码的基础上 符号位不变 其余各位取反 最后 1 1 的补码是 1 的补码是 2 转换方法 当真值为正数真值为正数时 原码 反码 补码原码 反码 补码 3 种机器数的最高位均为最高位均为 0 当真值为负数真值为负数时 原码 反码 补码原码 反码 补码 3 种机器数的最高位均为最高位均为 1 机器数的最高位为符号位最高位为符号位 其它位称为数值位其它位称为数值位 当真值为正数真值为正数时 原码原码 反码反码 补码补码 当真值为负数真值为负数时 三种机器数的符号位相同 均为 1 原码的数值位保持 原 样 反码的数值位是 原码数值位的 按位取反 补码的数值位是原码的数值位的 按位取反 后再加 1 简称 取反加 1 当真值为负数真值为负数时 补码补码 反码反码 1 当真值为负数真值为负数时 原码原码 补码补码 取补 补码补码 原码原码 取补 x 补 模 x 补 x 补 模 x 补 比如 8bit 模 28 1 0000 0000 例如 1 假设码长为 8 位 写出下列数的原码 反码和补码 根据本题可得到结论 0 的原码 反码各有两种表示方法 而补码是唯一的全 0 表示 真值 0 0 1 1 127 127 128 原码溢出 反码溢出 补码 2 假设码长为 8 位 写出原码 反码和补码所能表示定点整数和定点小数的范围 二进制定点整数十进制定点整数n 位可表示的个数二进制定点小数十进制定点小数 原 码 127 127 2n 1 个个 1 0 127 128 127 12 8 反 码 127 127 2n 1 个个 1 0 127 128 127 12 8 补 码 128 127 128 代替了 0 2n个个 1 0 1 127 128 由此可见 n 位的二进制数用原码表示 则可表示的数的个数为 2n 1 个 n 位的二进制数用反码表示 则可表示的数的个数为 2n 1 个 n 位的二进制数用补码表示 则可表示的数的个数为 n个 比如 补码中用 128 代替了 0 编程中常用到的 32 位 int 类型 可以表示范围是 231 231 1 因为第一位表示的是符号位 而使 用补码表示时又可以多保存一个最小值 2G 2G 1 3 算术运算 算术运算 计算机中的算术运算一般可采用补码进行 用补码表示的两个操作数进行算术运算 符号位可直接参 加运算 结果仍为补码 定点补码加法运算 运算规则 x y 补 x 取补 y 补 定点补码减法运算 运算规则 x y 补 x y 补 x 补 y 补 y 补 补的求法是将 y 补的各位 包括符号位 包括符号位 全取反 最末位加 即将 y 补连同符号位一起取反加 1 便可得到 y 补 x 补 模 x 补 x 补 模 x 补 比如 8bit 模 28 如 y 补 则 y 补 1 补 28 1 补 1 0000 0000 0000 0001 1111 1111 y 补 0100 则 y 补 1100 1 补 28 1 补 1 0000 0000 1111 1111 0000 0001 注意 在进行运算时有时会发生溢出 定点补码运算的溢出处理 采用补码运算时若结果的数值超出了补码所能表示的范围 则此种情况称为溢出 采用补码运算时若结果的数值超出了补码所能表示的范围 则此种情况称为溢出 若计算结果比能表示的最大数还大则称为上溢 上溢时一般作溢出中断处理 若计算结果比能表示的最小数还小则称为下溢 下溢时一般作机器零处理 下面介绍用双符号判断溢出方法 引入两个符号位Cs 1 Cs Cs 1用来表示两个符号位向更高位进位时的状态 有进位时Cs 1 1 无进位时Cs 1 0 Cs用来表示两数值的最高位向符号位进位时的状态 有进位时Cs 1 无进位时Cs 0 当Cs 1Cs 00 或 11 时 无溢出 当Cs 1Cs 01 或 10 时 有溢出 当双符号位为 01 时正溢出 当双 符号位为 10 时负溢出 例如 x 补 y 补 则 x y 补 溢出 因为Cs 1Cs 10 故溢出逻辑表达式为 V Cs 1 Cs 无符号数的运算 无符号数的运算实际上是指参加运算的操作数 X Y 均为正数 且整个字长全部用于表示数值部分 当两个无符号数相加时 其值在字长表示的范围内 其结果为正数 当两个无符号数相减时 其值的符号位取决于两数绝对值的大小 另外 地址在计算机中用无符号数表示 四原码四原码 反码反码 补码再深入补码再深入 计算机巧妙地把符号位参与运算 并且将减法变成了加法 背后蕴含了怎样的数学原理呢 将钟表想象成是一个 1 位的 12 进制数 如果当前时间是 6 点 我希望将时间设置成 4 点 我们可以 1 往回拨 2 个小时 6 2 4 2 往前拨 10 个小时 6 10 mod 12 4 3 往前拨 10 12 22 个小时 6 22 mod 12 4 2 3 方法中的 mod 是指取模操作 16 mod 12 4 即用 16 除以 12 后的余数是 4 所以钟表往回拨 减法 的结果可以用往前拨 加法 替代 现在的焦点就落在了如何用一个正数 来替代一个负数 上面的例子我们能感觉出来一些端倪 发 现一些规律 但是数学是严谨的 不能靠感觉 首先介绍一个数学中相关的概念 同余 模模 是指一个计量系统的计数范围是指一个计量系统的计数范围 例如 时钟的计量范围是 0 11 模 12 表示 n 位的计算机计量范围是 0 2n 1 模 2n 模模 实质上是计量器产生实质上是计量器产生 溢出溢出 的量的量 它的值在计量器上表示不出来 计量器上只能表示出模的余计量器上只能表示出模的余 数数 任何有模的计量器 均可化减法为加法运算 比如 时钟 模 12 中 加 8 和减 4 效果是一样的 因此凡是减 4 运算 都可以用加 8 来代替 对时钟 模 12 而言 8 和 4 互为补数 以 12 模的系统中 11 和 1 10 和 2 9 和 3 7 和 5 6 和 6 都互为补数 共同的特点是两者相加等于模 对于计算机 其概念和方法完全一样 n 位计算机 设 n 8 所能表示的最大数是 若再加 1 称为 9 位 但因只有 8 位 最高位 1 自然丢失 又回了 所以 8 位二进制系统的模为 28 在这样的系统中减法问题也可以化成加法问题 只需把减数用相应的补数表示就可以了 x 补 模 x 补 x 补 模 x 补 比如 8bit 模 28 1 补 28 1 补 1 0000 0000 0000 0001 1111 1111 1 补 28 1 补 1 0000 0000 1111 1111 0000 0001 把补数用到计算机对数的处理上 就是把补数用到计算机对数的处理上 就是补码补码 负数取模负数取模 x mod y x y int x y int x y VB 语法表示 不大于 x y 的最大整数 即向下取整 int 1 5 2 Fix 1 5 1 举例 3 mod 2 3 2 int 3 2 3 2 2 3 2x 2 1 同余的概念同余的概念 两个整数 a b 若它们除以整数 m 所得的余数相等 则称 a b 对于模 m 同余 记作 a b mod m 读作 a 与 b 对于模 m 同余 举例说明 4 mod 12 4 16 mod 12 4 28 mod 12 4 所以 4 16 28 对于模 12 同余 两个定理两个定理 1 反身性 a a mod m 自己和自己 对于模 m 同余 2 线性运算定理 如果 a b mod m c d mod m 那么 1 a c b d mod m 2 a c b d mod m 3 传递性 若 a b mod m b c mod m 则 a c mod m 典型例题典型例题 一 选择题 1 一个四位二进制补码的表示范围是 A 0 15 B 8 7 C 7 7 D 7 8 2 10 题 十进制数 48 用补码表示为 A B C D 分析 求某个负数的补码 可利用模的定义 所以求 48 的补码 只需求 80 的原码即可 因为 48 80 128 而 80 原 故选 B 注 传统做法是在原码的基础上 取反加 1 答案 B 3 09 年镇江三模 如果 X 为负数 由 x 补求 x 补是将 A x 补各值保持不变 B x 补符号位变反 其他各位不变 C x 补除符号位外 各位变反 末位加 1 D x 补连同符号位一起各位变反 末位加 1 分析 不论 X 是正数还是负数 由 X 补求 X 补的方法是对 X 补求补 即连同符号位一起按位取反 末位加 答案 D 二 二 判断题判断题 1 计算机中一个浮点数 N 可用 P S 表示 那么用规格化数表示 则尾数 S 必须满足 0 5 S 1 答案答案 对对 解题指导解题指导 一个浮点形式的尾数 S 若满足 0 5 S 1 且尾数的最高位数为 1 无无效的 0 则该 浮点数称为规格化数 规格化数可以提高运算的精度 三 三 填空题填空题 1 二进制数 的规格化数为 01100 二进制数 11011 的规格化数为 10100 尾数 阶码均 用 8 位二进制补码表示 分析 可表示为 11011 2 1 即规格化数为 11011 2 1 11011 可表示为 11011 25 即规格化数为 11011 2101 2 已知 X Y 为两个有符号数的定点整数 它们的补码为 x 补 B y 补 B 则 X Y 补 B 分析 X Y 补 X 补 Y 补 X 为正数 Y 为负数 故列式结果不溢出为 答案 原码 反码和补码的概念当堂练习原码 反码和补码的概念当堂练习 一 选择题 1 机器数 80H 所表示的真值是 128 则该机器数为 形式的表示 A 原码 B 反码 C 补码 D 移码 2 在浮点数中 阶码 尾数的表示格式是 A 阶码定点整数 尾数定点小数 B 阶码定点整数 尾数定点整数 C 阶码定点小数 尾数定点整数 D 阶码定点小数 尾数定点小数 3 已知 x 补 y 补 则 x y 补的结果是 A 溢出 B C D 4 某机字长 8 位 含一位数符 采用原码表示 则定点小数所能表示的非零最小正数为 A 2 9 B 2 8 C 1 D 2 7 5 08 年 下列数中最小的数是 C A 原B 反C 补D 2 6 12 年 8 位补码表示的定点整数的范围是 B A 128 128 B 128 127 C 127 128 D 127 127 7 11 年盐城二模 已知 X 的补码为 Y 的补码为 则 X Y 的补码为 A B C D 溢出 8 将 33 以单符号位补码形式存入 8 位寄存器中 寄存器中的内容为 A DFH B A1H C 5FH D DEH 9 在机器数的三种表示形式中 符号位可以和数值位一起参加运算的是 A 原码 B 补码 C 反码 D 反码 补码 二 判断题 1 16 位的补码表示的定点整数的最小值是 32768 2 10 年南京二模 一个数在计算机中分别用原码 反码 补码表示时一定各不相同 3 10 年常州三模 字长相同 定点法表示数的范围比浮点法小 4 若用八位二进制数来表示一个有符号数 则原码 反码和补码表示的数的个数与范围均相同 三 填空题 1 十进制数 27 对应的 8 位二进制补码为 2 11 年 已知 X Y 为两个带符号的定点整数 它们的补码为 X 补 B Y 补 B 则 X Y 补 B 3 数 x 的真值为 0 1011B 其原码表示为 补码表示为 4 八位定点整数 采用二进制补码表示时 所能表示真值的十进制数的范围是 5 09 年 已知 X 补 B Y 补 B 则 X Y 补 6 11 年 一个含有 6 个 1 2 个 0 的八位二进制整数原码 可表示的最大数为 7EH 用十六进制表示 7 12 年 已知 X 补 B 则 X B 8 10 年盐城二模 二进制数 若看成纯小数 且为补码 则其对应真值的十进制数是 原码 反码和补码的概念课后练习原码 反码和补码的概念课后练习 一 选择题一 选择题 1 10 年盐城二模 溢出 一般是指计算机在运算过程是产生的 A 数据量超过内存容量 B 文件个数超过磁盘目录区规定的范围 C 数据超过了机器的位所能表示的范围 D 数据超过了变量的表示范围 2 设有二进制数 X 若采用 8 位二进制数表示 则 X 补的结果是 A B C D 3 假设有一个 16 机的某存储单元存放着数 01000 若该数作为原码表示十进制有符号整数 其 中最高位为符号位 时 其值为 A 55510 B 23368 C 18762 D 56136 4 计算机内的数有浮点和定点两种表示方法 一个浮点法表示的数由两部分组成 即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 系统分析师考试项目管理考察试题及答案
- 2024年系统分析师考试中的实践技能提升试题及答案
- 秘书证考试时间管理策略试题及答案
- 2025餐厅经营合同范本
- 2025中外合作企业股权转让合同
- 混合复习统计学试题及答案解析
- 2025钢筋混凝土厂房建设合同范本
- 江苏科技大学《综合材料视觉表现》2023-2024学年第一学期期末试卷
- 西北师范大学《地理语言学》2023-2024学年第一学期期末试卷
- 四川省棠湖中学2025届高三下学期第一次质量检测试题历史试题含解析
- 二年级下册三位数加减混合计算练习200题及答案
- 证劵公司招聘笔试题及答案
- 施工现场安全围挡
- 拐杖及助行器的使用方法课件
- 2024年黄芩素行业分析报告及未来发展趋势
- 风湿免疫科学教学设计案例
- 金属风管预制安装施工技术
- 2023年数学竞赛AMC8真题D卷(含答案)
- 宴席设计实务(烹饪专业高职)全套教学课件
- 牙刷的营销方案和策略
- 公路工程项目管理重点
评论
0/150
提交评论