CN101393516A - 一种实现移动通信终端计算器四则运算法则的方法和装置 - Google Patents
一种实现移动通信终端计算器四则运算法则的方法和装置 Download PDFInfo
- Publication number
- CN101393516A CN101393516A CNA2008101676247A CN200810167624A CN101393516A CN 101393516 A CN101393516 A CN 101393516A CN A2008101676247 A CNA2008101676247 A CN A2008101676247A CN 200810167624 A CN200810167624 A CN 200810167624A CN 101393516 A CN101393516 A CN 101393516A
- Authority
- CN
- China
- Prior art keywords
- operational symbol
- communication terminal
- mobile communication
- stored
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Telephone Function (AREA)
Abstract
本发明公开了一种实现移动通信终端计算器四则运算法则的方法和装置,该方法包括:步骤一、给运算符分配优先级;步骤二、将用户依次输入的运算数和运算符存储起来;步骤三、当用户依次输入后一个运算数、后一个运算符时,判断后一运算符的优先级是否大于前一个运算符,根据情况决定即时计算与否并存储;步骤四、循环执行步骤三直到用户输入等号,进行即时运算后,将计算的结果存储起来;步骤五、计算存储的所有运算数和运算符。本发明所述实现移动通信终端计算器四则运算法则的方法和装置不需要专门配置浮点运算单元,对不支持浮点类型的移动通信终端上也适用,本发明所采用的算法简单,不会对移动通信终端的反应速度产生影响。
Description
技术领域
本发明涉及移动通信终端的附加功能领域,尤其涉及一种实现移动通信终端计算器四则运算法则的方法和装置。
背景技术
随着目前移动通信终端的广泛普及,以手机为例,其中的计算器功能给使用者带来了极大的方便。但目前手机中的计算器在功能上存在一个缺陷,即不能按照四则运算法则对输入的数据进行计算,而只能够按照数据输入的先后顺序依次进行计算。
这一缺陷使得在进行混合运算的时候,就不得不依靠人脑来参与部分运算,即对需要运算的算式,先确定计算的优先级,按照优先级高低决定计算的先后顺序,然后再用计算器的现有功能来逐个计算。但在这样的计算过程中,最为苦恼的是,中间结果总找不到地方进行记录,往往是计算后面的时候,忘了前面计算出来的中间结果,给使用者带来了极大的不便。
现有技术中已有的能够实现四则运算法则的计算工具,比如通用的计算机和计算器,因为要考虑到实施数值运算,所以都配有浮点运算处理器,同时,浮点运算处理器也会带有判断运算优先级别的功能。运算时,主CPU就把运算任务交给浮点运算处理器,浮点运算处理器得出结果后反馈给主CPU,从而实现浮点运算。也就是说,浮点运算器的指令集里已经集成了运算优先级的判断。计算器作为一种专业的计算工具,也能够实现四则运算法则,比如市场上出售的可以进行科学计算的工程型计算器,为了适应工程中方程式等长运算式的计算,其内部的CPU也同样具有支持浮点运算和优先级判别的CPU,或者主CPU本身就带有此功能,或者有附属的CPU专门负责运算功能。而手机大多数使用的是嵌入式操作系统,它的主要功能是通讯协议的传递、解析、以及对屏幕的控制,其核心功能并不涉及到浮点运算,甚至不涉及大数的计算,所以一般普通手机的CPU出于成本考虑,没有集成进行专业数值计算的功能。另一方面,普通手机的计算器本身并不提供浮点运算功能,所以在PC上很容易进行的一些算法,在手机的操作系统上并不适用。
发明内容
本发明所要解决的技术问题是,针对现有的不具备浮点运算单元的移动通信终端只能按照数据输入的先后顺序依次进行数值计算的缺陷,提出一种实现移动通信终端计算器四则运算法则的方法和装置,可以有效增强移动通信终端的计算器功能,改善用户使用体验。
为解决上述技术问题,本发明提出的实现移动通信终端计算器四则运算法则的方法,包括如下步骤:
步骤一、根据四则运算法则给运算符分配优先级;
步骤二、将用户依次输入的第一个运算数和第一个运算符存储起来;
步骤三、当用户依次输入后一个运算数、后一个运算符时,判断后一运算符的优先级是否大于前一个运算符,如果是,则不进行即时计算,并将当前待处理的运算数和运算符存储起来,如果否,则进行即时计算,将计算的结果存储起来;
步骤四、循环执行步骤三直到用户输入等号,进行即时运算后,将计算的结果存储起来;
步骤五、计算存储的所有运算数和运算符,得到最终结果。
一种实现移动通信终端计算器四则运算法则的装置,其特征在于包括:
优先级分配单元,用于根据四则运算法则给运算符分配优先级;
运算处理单元,用于将用户依次输入的第一个数字和第一个运算符存储起来;当用户依次输入后一个运算数、后一个运算符时,判断后一运算符的优先级是否大于前一个运算符,如果是,则不进行即时计算,并将当前待处理的运算数和运算符存储起来,如果否,则进行即时计算,将计算的结果存储起来;
循环执行单元,用于循环执行运算处理单元的操作直到用户输入等号,进行即时运算后,将计算的结果存储起来;
结果处理单元,用于计算存储的所有运算数和运算符,得到最终结果。
采用上述技术方案,本发明至少具有下列优点:
本发明所述实现移动通信终端计算器四则运算法则的方法和装置考虑到了移动通信终端的实际情况,采用软件的方法来实现运算符优先级的判别、数据的计算和存储,不需要为了实现功能较强的计算器而专门配置一个浮点运算单元,而且对不支持浮点类型的移动通信终端上也适用。用户使用手机等移动通信终端时,一般不会计算过于复杂和庞大的数,所以用这个简单的算法不会对移动通信终端的反应速度产生影响。
附图说明
图1为本发明的减号运算符及其优先级的定义方式示意图;
图2为本发明的用数组方式实现时的运算流程示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及实施例,对本发明提出的所述实现移动通信终端计算器四则运算法则的方法和装置,详细说明如后。
本发明第一实施例,针对现有的不具备浮点运算单元的手机只能按照数据输入的先后顺序依次进行数值计算的缺陷,提出一种实现移动通信终端计算器四则运算法则的方法,该方法可有效增强移动通信终端的计算器功能,改善用户使用体验。
实现移动通信终端计算器四则运算法则的方法,具体包括如下步骤:
步骤一、根据四则运算法则给运算符分配优先级。本发明支持加、减、乘、除之间无括号的四则运算法则,为此,要区分每种运算符以及它们之间的优先级。在C语言中,具体的做法是为每种运算符定义一个数值,为加、减、乘、除、等号对应的变量ADD、SUB、MUT、DIV、EQU,对其赋值如下:
const short int ADD=0x11;
const short int SUB=0x12;
const short int MUT=0x21;
const short int DIV=0x22;
constshort int EQU=0x01;
减号及其优先级的定义方式如图1所示,为了确认时方便,把该数值的高字节定义为级别段,低字节定义为符号段。也就是说高字节的值确定了该运算符的级别高低,而低字节的值确定了是哪个运算符。因为低字节有8位或者16位,所以可以有两种方案:方案一,低字节即符号段可以相异,这样光凭低字节的值即可判断是什么运算符;方案二,低字节可以相同,只有结合高字节的值才能确定是什么运算符。本实施例中采用的是后一方案。赋值后使各个运算符符合真实的四则运算优先级的规定,乘、除的优先级最高,加、减的优先级次之,等号的优先级最低。
以下以计算“3+5-4×2”为例,说明本发明的后续具体实现步骤。
步骤二、将用户输入的第一个运算数“3”、第一个运算符“+”依次存储起来,本实施例中的存储方式如下,这里使用了结构体来实现,将第一个运算数、和第一个运算符放入第一个结构体中。
Typedef struct _item
{
DATA data;
int oper;
}ITEM;
变量data是用来存放运算数的,它的类型可以自定义,变量oper是用来存放运算符的。使用时可以定义出一个数组来存放多个这样的结构体。
步骤三、当用户输入后一个运算数、后一个运算符时,判断该运算符的优先级是否大于前一个运算符,如果是,则不进行即时计算,并将当前待处理的运算数和运算符存储起来,如果否,则进行即时计算,将计算的结果存储起来。具体实现过程如图2所示,当用户会输入第二运算数“5”,之后再输入第二运算符“-”时,如果判断出第二运算符“-”的优先级不大于第一运算符“+”,则先算出这两个运算数的运算结果“8”,并把该结果“8”放入第一个结构体中,充当新的运算中的第一运算数,将第二运算符“-”前移一个结构体放入第一结构体中,第二结构体被清零;如果判断出第二运算符的优先级高于第一运算符,则不作任何计算。
步骤四、循环执行步骤三直到用户输入等号,进行即时运算后,将计算的结果存储起来。如图2所示等待第三运算数“4”和第三运算符“×”的输入并存放于第二结构体中后,再根据步骤三中的判断原则进行处理,因为第三运算符“×”的优先级高于第二运算符,所以不作任何计算。当第四运算数“2”和第四运算符“=”输入并存放于第三结构体中后,由于等号被定义为最低优先级,此时需要算出第三运算数和第四运算数的运算结果“8”,并把该结果“8”放入前一个结构体即第二结构体中,后一个运算符“=”前移一个结构体放入第二结构体中。
步骤五、递归计算存储的所有运算数和运算符,得到最终结果。
本发明第二实施例,本实施例中的实现移动通信终端计算器四则运算法则的方法的具体步骤与第一实施例大体相同,只是在结构体的存放方式上选择了链表的存储方式,在处理即时计算的计算结果时,在将其与后一个运算符放入前一个结构体中以后,不需要将后续输入的运算数和运算符往前移一个结构体,而是将前一个结构体所在节点直接指向后续输入的结构体即可。
本发明第三实施例,一种实现移动通信终端计算器四则运算法则的装置,其特征在于包括:
优先级分配单元,用于根据四则运算法则给运算符分配优先级,具体过程是:为每种运算符定义一个数值,把该数值的高字节定义为级别段,低字节定义为符号段;
运算处理单元,用于将用户依次输入的第一个数字和第一个运算符存储起来;当用户依次输入后一个运算数、后一个运算符时,判断后一运算符的优先级是否大于前一个运算符,如果是,则不进行即时计算,并将当前待处理的运算数和运算符存储起来,如果否,则进行即时计算,将计算的结果存储起来;
循环执行单元,用于循环执行运算处理单元的操作直到用户输入等号,进行即时运算后,将计算的结果存储起来;
结果处理单元,用于计算存储的所有运算数和运算符,得到最终结果。
所述存储的方式可以是将运算数和运算符采用结构体的方式存储于数组中,也可以是将运算数和运算符采用结构体的方式存储于链表中。
通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (8)
1、一种实现移动通信终端计算器四则运算法则的方法,其特征在于包括如下步骤:
步骤一、根据四则运算法则给运算符分配优先级;
步骤二、将用户依次输入的第一个数字和第一个运算符存储起来;
步骤三、当用户依次输入后一个运算数、后一个运算符时,判断后一运算符的优先级是否大于前一个运算符,如果是,则不进行即时计算,并将当前待处理的运算数和运算符存储起来,如果否,则进行即时计算,将计算的结果存储起来;
步骤四、循环执行步骤三直到用户输入等号,进行即时运算后,将计算的结果存储起来;
步骤五、计算存储的所有运算数和运算符,得到最终结果。
2、根据权利要求1所述实现移动通信终端计算器四则运算法则的方法,其特征在于步骤一的具体过程是:为每种运算符定义一个数值,把该数值的高字节定义为级别段,低字节定义为符号段。
3、根据权利要求1或2所述实现移动通信终端计算器四则运算法则的方法,其特征在于所述存储的方式是将运算数和运算符采用结构体的方式存储于数组中。
4、根据权利要求1或2所述实现移动通信终端计算器四则运算法则的方法,其特征在于所述存储的方式是将运算数和运算符采用结构体的方式存储于链表中。
5、一种实现移动通信终端计算器四则运算法则的装置,其特征在于包括:
优先级分配单元,用于根据四则运算法则给运算符分配优先级;
运算处理单元,用于将用户依次输入的第一个数字和第一个运算符存储起来;当用户依次输入后一个运算数、后一个运算符时,判断后一运算符的优先级是否大于前一个运算符,如果是,则不进行即时计算,并将当前待处理的运算数和运算符存储起来,如果否,则进行即时计算,将计算的结果存储起来;
循环执行单元,用于循环执行运算处理单元的操作直到用户输入等号,进行即时运算后,将计算的结果存储起来;
结果处理单元,用于计算存储的所有运算数和运算符,得到最终结果。
6、根据权利要求5所述实现移动通信终端计算器四则运算法则的装置,其特征在于给运算符分配优先级的具体过程是:为每种运算符定义一个数值,把该数值的高字节定义为级别段,低字节定义为符号段。
7、根据权利要求5或6所述实现移动通信终端计算器四则运算法则的装置,其特征在于所述存储的方式是将运算数和运算符采用结构体的方式存储于数组中。
8、根据权利要求5或6所述实现移动通信终端计算器四则运算法则的装置,其特征在于所述存储的方式是将运算数和运算符采用结构体的方式存储于链表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101676247A CN101393516A (zh) | 2008-10-21 | 2008-10-21 | 一种实现移动通信终端计算器四则运算法则的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101676247A CN101393516A (zh) | 2008-10-21 | 2008-10-21 | 一种实现移动通信终端计算器四则运算法则的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101393516A true CN101393516A (zh) | 2009-03-25 |
Family
ID=40493826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101676247A Pending CN101393516A (zh) | 2008-10-21 | 2008-10-21 | 一种实现移动通信终端计算器四则运算法则的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101393516A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645887A (zh) * | 2013-12-13 | 2014-03-19 | 广西科技大学 | 双指令多浮点操作数加/减、乘、除运算控制器 |
CN103645886A (zh) * | 2013-12-13 | 2014-03-19 | 广西科技大学 | 多浮点操作数加/减、乘、除运算控制器 |
CN104461536A (zh) * | 2014-12-04 | 2015-03-25 | 小米科技有限责任公司 | 运算处理方法及装置 |
CN105930297A (zh) * | 2016-05-11 | 2016-09-07 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端及其计算器数据计算处理方法、系统 |
CN111258547A (zh) * | 2018-12-03 | 2020-06-09 | 北京京东尚科信息技术有限公司 | 运算处理方法、系统、装置以及计算机可读介质 |
-
2008
- 2008-10-21 CN CNA2008101676247A patent/CN101393516A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645887A (zh) * | 2013-12-13 | 2014-03-19 | 广西科技大学 | 双指令多浮点操作数加/减、乘、除运算控制器 |
CN103645886A (zh) * | 2013-12-13 | 2014-03-19 | 广西科技大学 | 多浮点操作数加/减、乘、除运算控制器 |
CN103645886B (zh) * | 2013-12-13 | 2016-03-30 | 广西科技大学 | 多浮点操作数加/减、乘、除运算控制器 |
CN103645887B (zh) * | 2013-12-13 | 2016-06-08 | 广西科技大学 | 双指令多浮点操作数加/减、乘、除运算控制器 |
CN104461536A (zh) * | 2014-12-04 | 2015-03-25 | 小米科技有限责任公司 | 运算处理方法及装置 |
CN105930297A (zh) * | 2016-05-11 | 2016-09-07 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端及其计算器数据计算处理方法、系统 |
CN111258547A (zh) * | 2018-12-03 | 2020-06-09 | 北京京东尚科信息技术有限公司 | 运算处理方法、系统、装置以及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899182B (zh) | 一种支持可变分块的矩阵乘加速方法 | |
CN105468335B (zh) | 流水级运算装置、数据处理方法及片上网络芯片 | |
CN109902819A (zh) | 神经网络计算方法、装置、移动终端及存储介质 | |
CN107451659A (zh) | 用于位宽分区的神经网络加速器及其实现方法 | |
CN101393516A (zh) | 一种实现移动通信终端计算器四则运算法则的方法和装置 | |
CN109885452A (zh) | 性能监控方法、装置及终端设备 | |
CN108334408A (zh) | 代码执行方法、装置、终端设备及计算机可读存储介质 | |
CN107315717A (zh) | 一种用于执行向量四则运算的装置和方法 | |
CN109732594A (zh) | 一种机器人控制方法、系统及机器人 | |
CN109284083A (zh) | 一种乘法运算装置及方法 | |
CN108880700A (zh) | 时钟信号的频率跳变方法、频率跳变装置及移动终端 | |
CN102567254A (zh) | 采用dma控制器进行数据归一化处理的方法 | |
CN110490308A (zh) | 加速库的设计方法、终端设备及存储介质 | |
CN110471747A (zh) | 一种dma多通道的调度使用方法、装置及终端设备 | |
CN109146060A (zh) | 一种基于卷积神经网络处理数据的方法及装置 | |
CN101561797A (zh) | 在处理系统上对矩阵进行奇异值、特征值分解的方法和装置 | |
CN104657087B (zh) | 一种虚拟磁盘映射的方法、装置及系统 | |
CN110533182A (zh) | 一种数据处理方法及装置 | |
CN115329923A (zh) | 用于神经网络模型的编译方法和相关产品 | |
CN108255463A (zh) | 一种数字逻辑运算方法、电路和fpga芯片 | |
CN109992242B (zh) | 基于乘法器的运算方法及装置 | |
CN102693118A (zh) | 一种标量浮点运算加速器 | |
CN102609245B (zh) | 一种两级运算架构的异构多核处理器 | |
CN107491288B (zh) | 一种基于单指令多数据流结构的数据处理方法及装置 | |
CN110442086A (zh) | 一种机器人及其动作切换的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090325 |