标题 :程序员计算器说明
版本 :0.1.2.10
日期 :2014-02-15
作者 :翁传对
Email:JerrySQL@GMail.com wengcd@qq.com
一、进制转换
输入
10进制:直接输入,支持负数。
16进制:0x10,不支持负数
浮点数:直接收入,支持负数。
2进制:二进制图标点击输入。
字符:'A','翁',字符必须用两个单引号。
===================================================================================================
二、表达式计算
1.支持大数运算。大数用数组表示,数组大小为10000个元素。可以计算3502的阶层。
大数表示方法: sign,intcount,decimalcount|num[PBigNum_ValueLength]。
sign: 符号。正数:sign=0; 负数:sign=1。
intcount: 整数个数。
decimalcount: 小数个数。
num: __int64数组,元素个数=PBigNum_ValueLength。
举例1: 0,3,0|0,0,0,0,0,0,0,1,2,3代表123。(假设PBigNum_ValueLength=10)
举例2: 1,3,2|0,0,0,0,0,1,2,3,4,5代表-123.45。
举例3: 0,1,0|0,0,0,0,0,0,0,0,0,0代表0。
举例4: 0,1,0|0,0,0,0,0,0,0,0,0,1代表1。
举例5: 0,0,1|0,0,0,0,0,0,0,0,0,1代表0.1。
举例6: 0,0,0|0,0,0,0,0,0,0,0,0,0 此数非法
特点: sign,intcount,decimalcount,num[]均不可能出现负数;sign取值0与1;intcount和decimalcount不可能同时是0。
---------------------------------------------------------------------------------------------------
2.支持四则运算,支持小括号(不支持中括号和大括号),支持负数,支持双精度浮点数double。 支持+-*/。运算数以数组表示,并模拟+-*/,并没有直接调用C/C++当中的+-*/运算符对两个运算数进行运算。
3.支持以下字符串运算:"123+-456","123--456"。不支持以下字符串运算:"123++456","123-+456"。
4.小数点精度20位。
5.支持pi常数。
-------------------------------------------------
5.测试用例:
1/6=0.16666666666666666667
3175/6=529.16666666666666666667
1/7=0.14285714285714285714
1+(2)=3
1+(-2)=-1
0xFF+1=256
0xFFFFFFFFFFFFFFFF*0xFFFFFFFFFFFFFFFF=340282366920938463426481119284349108225
-0x123*-0x123=84681
0xFFFFFF+0=16777215
0xFFFFFF*0=0
10.569*2.469=26.094861
12.5+13.5=26
12.5/13.5=0.92592592592592592593
56*0=0
(((952.5*400/25.4)*1024*2)/1024/1024)/8=3.662109375
fac(100)=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
0.7*0.15=0.105
0.00135375*1还有问题
0.01*1
sin(20)=(20*pi/180)-pow((20*pi/180),3)/fac(3)+pow((20*pi/180),5)/fac(5)-pow((20*pi/180),7)/fac(7)+pow((20*pi/180),9)/fac(9)-pow((20*pi/180),11)/fac(11)
39