[发明专利]基于链表的支持任意位数输入的运算方法及运算器无效
申请号: | 200910194274.8 | 申请日: | 2009-12-01 |
公开(公告)号: | CN101727307A | 公开(公告)日: | 2010-06-09 |
发明(设计)人: | 林忠侣;张志东 | 申请(专利权)人: | 厦门敏讯信息技术股份有限公司 |
主分类号: | G06F7/50 | 分类号: | G06F7/50;G06F7/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 361009 福建省*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 支持 任意 位数 输入 运算 方法 运算器 | ||
1.基于链表的支持任意位数输入的运算方法,其特征在于:所述运算方法通过如下步骤实现:
对输入任意位数的操作数结构体进行分割处理,输出整数部分、小数部分及正负标志;
将整数部分的各数值逆序存储于整数链表中,小数部分的各数值逆序存储于小数链表中;
将整数链表、小数链表及正负标志进行相互运算,得到显示正负标志、逆序显示整数链表的数值、小数点、逆序显示小数链表的数值;最后按原序规则处理输出最后运算结果。
2.根据权利要求1所述的基于链表的支持任意位数输入的运算方法,其特征在于:所述运算方法包括加法运算。
3.根据权利要求2所述的基于链表的支持任意位数输入的运算方法,其特征在于:所述的加法运算包括以下步骤:
步骤101A,对输入的任意位数操作数的结构体进行分割为整数部份、小数部份及正负标志,将整数部分的各数值逆序存储为整数链表,小数部分的各数值逆序存储为小数链表;
步骤102A,判断正负标志;
如果两操作数都为负,得到结果数的正负标志为负数,执行步骤103A;
如果两操作数都为正,得到结果数的正负标志为正数,继续执行步骤103A;
如果两操作数为一正一负,则执行减法运算;
步骤103A,对两操作数的小数链表进行快速加法运算,得到结果数的小数链表与进位数;
步骤104A,对两操作数的整数链表进行快速加法运算,得到新的整数链表;
步骤105A,以进位数生成一个相应的整数链表与新的整数链表进行快速加法运算,得到结果数的整数链表;
步骤106A,去除结果数的小数链表从第一结点开始的数字为0的连续结点,及结果数的整数链表从末尾结点开始数字为0的连续结点;
步骤107A,按原序规则处理输出加法运算的结果。
4.根据权利要求1所述的基于链表的支持任意位数输入的运算方法,其特征在于:所述运算方法包括减法运算。
5.根据权利要求4所述的基于链表的支持任意位数输入的运算方法,其特征在于:所述减法运算包括以下步骤:
步骤101B,对输入的任意位数操作数的结构体进行分割为整数部份、小数部份及正负标志,将整数部分的各数值逆序存储为整数链表,小数部分的各数值逆序存储为小数链表;
步骤102B,判断正负标志;
如果两操作数为一正一负,则改变第二操作数的正负标志为正,返回两操作数的加法运算;
如果两操作数为一负一正,则改变第一操作数的正负标志为正,结果数的正负标志为负数,返回两操作数的加法运算;
如果两操作数都为正,则执行步骤103B;
步骤103B,比较第一操作数与第二操作数的大小;
如果第一操作数小于第二操作数,则改变第一操作数的正负标志为正,结果数的正负标志为负,返回两操作数的加法运算;
如果第一操作数大于或等于第二操作数,则执行步骤104B;
步骤104B,得到结果数的正负标志为正数;
步骤105B;对两操作数的小数链表进行快速减法运算,得到结果数的小数链表与进位数;
步骤106B,对两操作数的整数链表进行快速减法运算得到新的整数链表;
步骤107B,以进位数生成一个相应的整数链表,并与新生成的整数链表进行快速减法运算,得到结果数的整数链表;
步骤108B,去除结果数小数链表的从第一结点开始的数字为0的连续结点,与结果数的整数链表从末尾结点开始的数字为0的连续结点;
步骤109B,按原序规则处理输出减法运算的结果。
6.根据权利要求1所述的基于链表的支持任意位数输入的运算方法,其特征在于:所述运算方法包括乘法运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门敏讯信息技术股份有限公司,未经厦门敏讯信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910194274.8/1.html,转载请声明来源钻瓜专利网。