单片机程序中的各种数字.ppt

上传人:sh****n 文档编号:6352930 上传时间:2020-02-23 格式:PPT 页数:39 大小:1.52MB
返回 下载 相关 举报
单片机程序中的各种数字.ppt_第1页
第1页 / 共39页
单片机程序中的各种数字.ppt_第2页
第2页 / 共39页
单片机程序中的各种数字.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
第2章程序中的各种数字 程序中的各种数字 用单片机对目标设备进行控制是我们学习单片机的目的 一个单片机控制系统除必要的硬件支撑外 还需要软件支持 那么软件是什么呢 如果抽象地回答 软件就是指挥控制系统协调工作的程序 我们将要介绍的单片机是数字计算机的范畴 它只能识别数字 所以我们的软件基础的学习还是从数字 数制以及如何存放着手 任意一个十进制数N都可以表示成按权展开的多项式 其中 di是0 9共10个数字中的任意一个 m是小数点右边的位数 n是小数点左边的位数 i是数位的序数 例如 543 21可表示为 543 21 5 102 4 101 3 100 2 10 1 1 10 2 任意一个十六进制数N可以表示成按权展开的多项式 其中 di是0 F共16个数字中的任意一个 m是小数点右边的位数 n是小数点左边的位数 i是数位的序数 例如 54E 21H可表示为 54E 21H 5 162 4 161 14 160 2 16 1 1 16 2 任意一个二进制数N都可以表示成按权展开的多项式 其中 di是0 1两个数字中的任意一个 m是小数点右边的位数 n是小数点左边的位数 i是数位的序数 例如 101 01B可表示为 101 01B 1 22 0 21 1 20 0 2 1 1 2 2 一般而言 对于用R进制表示的数N 可以按权展开为 式中 ai是0 1 R 1 中的任一个 m n是正整数 R是基数 在R进制中 每个数字所表示的值是该数字与它相应的权Ri的乘积 计数原则是 逢R进一 数制及其数制之间的转换 计算机只识别二进制 十六进制书写起来比二进制方便 日常生活中人们习惯用十进制 二进制数与十六进制数 二进制与十六进制数有什么关系 四位二进制数刚好是一位十六进制数 同一个数 用二进制表示需要8位 但用十六进制表示只需要2位 计算机使用二进制 我们书写时采用十六进制 这叫 各取所需 实际上 n位二进制数可以表示2n种组合 1位能表示21种组合 0 1 在计算机中称作位 4位能表示24 16种组合 0 15的整数即1位16进制数 0000B 0 H 0001B 1 H 0010B 2 H 0011B 3 H 0100B 4 H 0101B 5 H 0110B 6 H 0111B 7 H 1000B 8 H 1001B 9 H 1010B A H 1011B B H 1100B C H 1101B D H 1110B E H 1111B F H 4位二进制 1位16进制数 在计算机中称作半字节 数制之间的转换 十进制数转换成非十进制数 整数部分采用除基数取余法 直至商为0 先得到的余数为低位 后得到的余数为高位 小数部分采用乘基数取整法 直至乘积为整数或达到控制精度 除基取余法 乘基取整法 整数部分 小数部分 对于R进制基 R 将 168 10转换成二 十六进制数 将0 625D转换成二进制和十六进制 二进制 乘2取整0 625 2 1 25 1 0 25 2 0 50 0 0 5 2 1 10 625D 0 101B十六进制 乘16取整0 625X16 10 A0 625D 0 AH 表2 1十进制与二进制数 十六进制数对应关系 二进制数与十六进制数转换 将二进制数转换成十六进制数可按四位一组进行分组 每一组对应十六进制的相应数码 组合即得转换结果 分组时如果位数不够 即 位数不是4的倍数 整数部分在最左边补0 小数部分在最右边补0 分组法 4位二进制组成1位十六进制 例如 把二进制数1011010 101B转换成十六进制数 解 将1011010 101B按4位分组成01011010 1010查表得 5AA所以 1011010 101B 5A AH 将十六进制数转换成二进制数 只需将其每一位对应转换成二进制数四位即可 展开法 1位十六进制展开成4位二进制 例如 将十六进制数8E 38H转换成二进制数 解 展开十六进制数8E 38H查表 10001110 00111000H所以 8E 38H 10001110 00111B 1 将十进制数128D转换成二进制数 2 将十进制数142D转换成十六进制数 3 将十进制数112 25D转换成二进制数 4 直接将11001010B写成十六进制数 5 直接将68H写成二进制数 6 直接将65 8H写成二进制数 思考题 1 128D 10000000B2 142D 8EH3 112 25D 1110000 01B4 11001010B CAH5 68H 1101000B6 65 8H 1100101 1B 答案 机器数 什么是机器数 数在计算机中的二进制表示形式称为机器数 机器数的特征 将数的符号也数字化 原码 一般用最高有效位表示数的符号 0 代表正数 1 代表负数 机器数的表示还与存储位数有关 字节 8位二进制数 字 十六位二进制数 双字 32位二进制数 有区别 例如 110101B 以字节存放表示为 10110101以字存放表示为 1000000000110101以双字存放表示为 10000000000000000000000000110101 1 为符号位 正数的原码 反码 补码 或者说正数没有反码和补码 例如 110101B的原码以字节存放表示为 10110101 110101B的反码以字节存放表示为 11001010 110101B的补码以字节存放表示为 11001011在教科书中为了便于理解 常将数用中括号括起来 在尾部加注下标原 反 补来明确码制 原 反 补 如 110101B的原码为 110101B 原 10110101 110101B的反码为 110101B 反 11001010 110101B的补码为 110101B 补 11001011值得注意的是 由于 0 原 00000000B 而 0 原 10000000B 所以数值0的原码不唯一 8位二进制原码能表示的范围是 11111111 01111111即 十进制的 127 127 n位原码表示的数的范围是 2n 1 1 2n 1 1 8位原码表示的数的范围是 7 7 即 十进制的 127 127 16位原码表示的数的范围是 15 15 即 十进制的 32767 32767 对于正数而言 原 反 补 真值对于负数而言 原 反 补 真值已知负数真值可直接写出原码 其方法是最高位写 1 其余位不变已知负数原码求反码的方法是 符号位不变 数值位对应 0 变 1 1 变 0 已知负数原码求补码的方法是 符号位不变 数值位对应 0 变 1 1 变 0 后末位加1 例如 求 56的原码 反码 补码 解 1 将十进制的 56转换成二进制数即 56D 111000B 56D 111000B2 将真值写成原码后求反码和补码 111000B 原 10111000以字节表示 111000B 反 11000111以字节表示 111000B 补 11001000 表2 28位二进制数的原码 反码和补码对照表 例如 求 273的原码 反码 补码 解 1 将273转换成二进制数即 273D 100010001B注意 在计算机中数的存放是以字节为单位 每字节8位 数的有效位为9位 必须占用两个字节 实际上如果一个数的有效位为N 只要15 N 8 这个数存放在计算机中必须占用两个字节 本例N 9 所以原码 反码 补码必须占用16位 即两个字节 2 将 100010001B用原码表示后求反码和补码 100010001B 原 1000000100010001 100010001B 反 1111111011101110 100010001B 补 1111111011101111 1 如果一个二进制负数的有效位N 6 那么它的原码在计算机中应该占用几个字节 2 如果一个二进制负数的有效位N 14 那么它的原码在计算机中应该占用几个字节 3 如果一个二进制负数的有效位N 20 那么它的原码在计算机中应该占用几个字节 4 求139的原码 反码 补码 5 求 139的原码 反码 补码 6 求 1139的原码 反码 补码 思考题 无符号数 什么是无符号数 正整数在计算机中被称作无符号数 在某些情况下 要处理的数据全是正整数 此时保留符号位毫无意义 如将符号位也作为数据位处理 可形成无符号数 同时扩大数据范围 例如 10011001B 表示无符号整数是1 27 1 24 1 23 1 即153表示有符号整数是 1 24 1 23 1 即 25n位无符号整数的范围为 0 2n 1 8位 一个字节 无符号整数范围为 0 255 16位 两个字节 无符号整数范围为 0 65535 在计算机中 用无符号数常用来表示存储空间的地址 BCD码 什么是BCD码 使用4位二进制数来表示一位十进制数 常称为二进制编码的十进制数 4位二进制数能表示16种状态 可用其中任意10种状态表示十进制数字0 9 由此形成8421码 2421码 余3码等多种BCD码 最常用的是8421码 所谓8421码是由二进制数的权来描述的 例如 4位二进制数8421码编码方法见表1 3 8421是指用于编码的4位二进制各位的权 8421BCD编码表 字符数据编码 什么是字符数据编码 我们知道计算机只能识别二进制数 不能识别字符 所以字符进入计算机前必须进行二进制编码 这种编码成为字符数据编码 目前广泛应用的是美国信息交换标准代码 AmericanStandardCodeInformationInterchange 简称ASCII码 ASCII码采用1个字节的低7位进行编码 能完成27 128个字符的编码 以十六进制书写 例如 字符 A 的ASCII码 1000001B书写成41H字符 的ASCII码 0111101B书写成3DH字符 的ASCII码 1000000B书写成40H常用ASCII码见下表 内存中的数据 数据在计算机内部以何种方式存放 依赖于程序执行情况 可用二进制 原码 反码 补码 BCD码 ASCII码 例如 2006 二进制存储为 0000011111010110B2字节 压缩BCD码存储为 0010000000000110B2字节 非压缩BCD码储为 00000010000000000000000000000110B4字节 ASCII码存储为 00110010001100000011000000110110B4字节 1个字节存放两位BCD码 1个字节存放一位BCD码 存储器 存储器是计算机的记忆单元 以8位二进制为一个基本单元 如果我们把8位二进制数10110011B存入一个存储单元 把16位二进制数1111000010110011B存入存储器 需要占用2个存储单元 0号单元称作地址0 1号单元称作地址1 0号单元中的 10110011 称作该单元中的内容或数据 1号单元中的 11110000 称作该单元中的内容或数据 不难看出用一位二进制数给存储单元编地址 可以对两个单元编址即0号和1号 把32位二进制数11110000101100111111000010110011B存入存储器 需要占用4个存储单元 不难看出对4个存储单元进行编号需要用2位二进制数 即00 01 10 11 这些编号在计算机中有一个专有名词 地址 通常单片机的内存最多可以达到65536个存储单元 简称64K 所以内存编号 地址 对应65536个 如果用二进制数进行编码那就是 0000000000000000B 1111111111111111B 如果用十六进制数进行编码那就是 0000H FFFFH 在同样大小的内存中采用十六进制数编址比采用二进制数编址要简洁得多 这也就是我们为什么要使用十六进制的关键所在 小结 我们通过这章的学习 数据在单片机中的各种不同存放方式 认识了有符号数 无符号数 BCD码 ASCII码以及内存编址 为我们下一步的学习奠定了基础 从下一章开始 我们的学习就一直围绕单片机展开 1 直接写出 25的原码 反码 补码 2 以二进制无符号数表示254 3 直接写出68的BCD码 4 直接写出 H 和 h 的ASCII码 5 分别将1248以二进制 压缩BCD码 非压缩BCD码 ASCII码存放在计算机内存中 思考题 答案 1 10011001 11100110 11100111 2 11111110 3 01101000 4 01001000 01101000 5 0000010011100000 0001001001001000
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!