运算符优先级问题总结

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:fangfei123456
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]C语言的运算符和优先级顺序非常重要,当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。本文就某型号图像识别软件中出现运算符优先级处理不当问题做机理分析和问题总结,并阐述纠正措施。
  [关键词]运算 优先级 结合性
  中图分类号:TP957 文献标识码:A 文章编号:1009-914X(2018)38-0256-02
  1. C语言
  C语言是常用的一种编程语言,C语言的运算符和优先级顺序非常重要,在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象,不同的运算顺序可能得出不同结果甚至出现运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性,如果使用不合理,就很容易造成计算错误等问题。
  2. 运算符优先级
  C语言运算符共有15级优先级,每一级的结合性,不是从左到右就是从右到左。表达式中,在没有括号的情况下,这些规则决定了表达式运算的次序,每一级中的运算符是同优先级的。下表对操作符的优先级和结合性作了小结。
  3.案例现象
  接下来让我们结合实例来说明运算符优先级的重要性。
  该软件是某型号图像识别软件,作为分系统中重要的测量部件,其软、硬件相互紧密配合,协同工作,以满足分系统对目标姿态捕获要求。该软件主体采用ANSI C语言,嵌入少量DSP汇编语言,程序中规定在完成星图的初始捕获后,软件应能利用已知的姿态,跟踪视场中已识别出的恒星在视场内的移动,具体做法是:为每一颗已识别出的恒星设定确定的跟踪波门,每次仅在波门内提取星点,随着目标的运动,进行跟踪状态下的重新识别。该软件在测试中发现在星跟踪阶段,识别星丢失的问题现象。
  4.機理分析
  根据型号对于软件的动态要求以及软件本身的图像传感器信息计算后,以已知的星点坐标为中心以半径20的波门对星点进行跟踪扫描,并利用已知星点信息进行验证,求出区域内星的数量,每个区域至多取9颗星,程序代码如下:
  当求出区域内星的数量tmpLctSum之后,程序会执行判断语句if(tmpLctSum&0xFF >0 ),这里设计师的本意是若提取出的星数大于0则保存提取出的星点坐标并带入之后的星跟踪计算,然而设计师却忽略了一个重要的问题-运算符的优先级!表达式中的运算符优先级见下表。
  由于“>”的优先级比“&”高,0xFF>0的判断结果总为1,因此判断语句等同于if(tmpLctSum&1),当星跟踪在某一区域提取出的星点个数为偶数时不保存星点坐标,导致这些星点丢失并使这颗星跟踪失败。
  5.纠正措施
  查清问题并分析清楚机理后,软件设计人员采取了如下纠正措施:将判断语句if(tmpLctSum&0xFF >0 )更改为if((tmpLctSum&0xFF) >0 ),更改后的软件运行结果正确。
  6.启示和建议
  通过以上例子,可以得出以下启示及建议:
  在软件开发、测试过程中要充分考虑运算符的优先级和组合,C语言中有很多运算符,除了四则运算,还有位运算、比较运算、逻辑运算、赋值运算等等,令人眼花缭乱的同时,优先级也让人头疼。在含有逻辑操作符的表达式中使用括号可使运算顺序变得清晰,对于优先级不明确的最好使用括号括起。
  动态测试的全面性依旧是保证测试质量的关键,测试人员要针对软件各个功能项编写正常异常用例,既要对每个条件判断使用等价类方法进行用例设计,还要考虑组合情况。
  作者简介
  陈琦,软件测评工程师,从事软件测评工作。
其他文献
[摘 要]随着我国社会经济的快速发展与人民物质生活水平的不断提高,人们接触到的信息也越来越多,接收信息的渠道也越来越广,促使人们在精神上的需求不断地提升。为了适应和满足社会的发展以及人们对物质文化的需求,各种类型的节目不断被推出,以各种各样的方式展现在大众眼前,牢牢地吸引着观众的眼球。这种情况也导致人们对节目质量,节目信号强度的要求不断提高。作为节目传输系统中具有重要作用的卫星接收天线这一环节,其
期刊
[摘 要]现代化园林建设是集合生态系统、城市建设系统与人们生活意愿为一身的基础设施,除了要在美化环境发生作用,同时还需要给人们提供感官上美的享受,提供可供人们休憩的场所,维护生物的多样性,也能够对文化遗产和自然资源进行保护,因此本文对园林建设与城市生态经济的发展进行分析研究,希望园林建设与城市生态经济之间能够更加和谐稳定。  [关键词]园林建设;城市;生态经济;发展  中图分类号:TP111 文献
期刊
[摘 要]建筑工程的特点在于周期长、工程量大、审核内容广等,其中资金费用贯穿于整个工程周期,需要进行细致管理,任何细节的一个小问题都会影响工程的整体效益。在此过程中,工程造价预结算审核起着重要作用,需要审核工作人员秉承实事求是的工作原则,掌握科学合理的审核方法和技巧,保证审核结果的精准度,提升工程结算核算水平。但是,在实际造价审核中还是存在一些问题,本文对此类问题进行了相关分析,进一步提出应对策略
期刊
[摘 要]随着科技的发展,电气自动化技术也不断发展,在各行各业中被广泛应用。尤其是在工业中的应用提高了工业生产的效率和检测的准确性,同时降低了人工劳动的强度,增强了系统的可靠性。本文分析了工业电气自动化的应用现状,并探究了未来工业电气自动化的发展趋势,以期为电气自动化技术在工业中的应用提供参考。  [关键词]工业;电气自动化;应用现状;发展  中图分类号:TP537 文献标识码:A 文章编号:10
期刊
[摘 要]该文通过设计实践来研究中国风景园林传统的造园理法,借助理法思考与现代的风景园林实践的结合,对于现代风景园林设计实践的问题和现状寻求积极的继承和发展之路,希望能以自己亲身多年的风景园林设计工作经验给大家带来一些参考。  [关键词]风景园林;设计实践;传统理法  中图分类号:TP131 文献标识码:A 文章编号:1009-914X(2018)38-0248-01  一、中国风景园林概述  中
期刊
[摘 要]在21世纪,几乎所有人都在高度集中的享受信息化时代,享受着办公自动化,出行网络化等带来的便利。所有的企业也都开始加强自身的网络建设来提高和更新自己的企业核心竞争力。基于网络全球化,网络的设计及应用变得越来越严格和要求越来越高,这是对于公司企业的网络建设是一个巨大的挑战。无论是各个部门对VLAN的分配,还是ACL访问的配置列表,亦或是STP的生成协议的操作,这些都是企业网路由交换存在的问题
期刊
[摘 要]近年来,在我国经济持续发展的推动下,液化天然气得到高速发展,并逐渐成为社会发展的主要资源之一,对我国实现现代化建设目标具有重要作用。同时,为了满足社会以及人们的发展需求,天然气液化装置已经大量投产建厂,以缓解我国资源紧缺的压力,推动我国综合实力的快速提升。现阶段,如何实现天然气液化装置的能耗分析与设计,并采取有效的节能措施,已经成为当今社会广泛关注的首要课题,并受到人们的高度重视。本文主
期刊
[摘 要]汽车的使用愈来愈方便,人们对汽车的使用中受到各种因素的影响难免会存在故障问题,加强故障的维修就显得比较关键。本文主要就汽车电器的故障内容以及判断方法加以阐述,然后就汽车电器维修注意事项以及维修技术应用详细探究,在此次对汽车电器维修技术的研究分析下,希望能为具体的电器故障问题的额剞劂起到启示作用。  [关键词]电器故障;汽车;维修技术  中图分类号:TP968 文献标识码:A 文章编号:1
期刊
[摘 要]水利工程建设管理过程中,问题的出现会阻碍工程的建设,通过有效的解决措施提高水利工程的管理水平,才能促进水利工程快速发展。  [关键词]水利工程;建设管理;问题;措施  中图分类号:TP167 文献标识码:A 文章编号:1009-914X(2018)38-0257-01  1.前言  随着我国国民经济的快速发展,水利工程的建设也日益增多。但是,当前我国的水利工程建设管理中存在着一些问题,严
期刊
[摘 要]信息技术的发展以及计算机应用的普及,使得人工智能的应用也越来越广泛,这要求计算机需要具有更强的视觉和语言感知等能力,进而为人们的生活和工作提供更大的帮助。从我国当前的人工智能识别技术形式来看,虽然取得了巨大的进步,但是在实际的应用过程中还存在一定的问题,如果不突破这些瓶颈将会对计算机人工智能识别技术的应用造成巨大的影响。  [关键词]计算机;人工智能;研究进展;应用  中图分类号:TP8
期刊