超范围条件下,数值型数据值的算法及公式推导——以KEIL C51为例研究.pdf

超范围条件下,数值型数据值的算法及公式推导——以KEIL C51为例研究.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 32卷第6期 长春师范学院学报 (自然科学版) 2013年 12月 Vo1.32No.6 JournalofChangchunNormalUniversity(NaturalScience) Dec.2013 超范围条件下,数值型数据值的算法及公式推导 — — 以KEILC51为例 崔 凯,李彬彬 ,刘旭东 (营 口职业技术学院电气电子工程系,辽宁营 口115000) [摘 要]在 C语言教学中,数据类型其相应的数据范围的取值问题都是以补码进行讲解的。当超 数据范围时,数据的真实值发生了变化,若对其进行计算 ,其理论依据仍是补码。但这种计算是很 复杂的,也极易出错 ,对于初学的学生甚至教师都是一种考验。而对于任意一个给定的数 ,要很快 计算出其结果,对于绝大多数师生似乎是一件 “很难完成的任务”。本文先用补码进行理论推导 ,之 后以大家最熟悉的十进制数进行计算 ,并最终推导出计算公式 ,使超数据范围条件下的任意数据的 计算都能准确、轻松地实现。 [关键词]C语言;超数据范围;数值型数据;算法公式 [中图分类号】TP301.6 [文献标识码]A [文章编号]1008—178X(2013)06—0023—04 1 “码”简介(以8位 2进制数为例) 在数学中,数的正负是用 “+”、“一”表示的,而在计算机 (包括单片机)中,数的正负是用最高位的值来 表示的。若最高位为 “0”,则此数为正数;若最高位为 “1”,则此数为负数。例如:十进制数 “+10”,其在计算 机中表示为 。十进制数 “一10”,其在计算机中表示为 。我们把计算机中 “数码化” 了的带符号的数称为机器数,而把原来的数称为机器数的真值。机器数有三种表示方法:原码、反码、补码。 我们得出以下结论…: 1.1 原码 正数的原码与原来的数相同。例:+10的原码为 “0oo01010”。负数的原码符号位置 “1”,而数值不变。 例:一1O的原码为 “一”=。0的原码有两种:[+0]和 [一0]。[+0]的原码为 “0000 0000”。[一0]的原码为 。 1.2 反码 正数的反码与原码相同。例:+1O的反码为 。负数的反码为其绝对值按位取反后,符号位 置 “1”。例:一l0的反码为 。0的反码分为 [+0]和[一0]。[+0]的反码为 。[一 0]的反码为 。 1.3 补码 正数的补码与原码相同。例 :+l0的补码为 。负数的补码为其反码加 1。例 :一10的补码 为 1”=。0的补码为 。 因此,正数的原码、反码、补码均相同。负数的原码为其绝对值的原码最高位置 “1”,反码为其绝对值按 位取反后,符号位置 “1”,补码为其反码加 1。[+0]的原码、反码均为 。[一0]的原码为 “1000 0000”,反码为 。0(包括 [+0]和[一0])的补码为 。 2 8位二进制数原码、补码 、反码对应关系表 数据在计算机中的存储都是以“补码”进行的_2]。 [收稿 日期]2013—07—06 [基金项目]国家自然科学基金资助项目。 [作者简介]崔 凯(1980一),男,辽宁本溪人 ,营口职业技术学院电气电子工程系讲师,硕士,从事单片机开发设计研究。 · 23 · 接下来我们来看8位二进制数(补码值)及其代表原码、反码、补码表示的值 (十进制)间的对应关系(表 表 1 8位二进制数的原码、反码、补码对应关系 8位二进制数 无符号十进制数

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档