大数字的表示与计算--上位机VC
大数字的表示与计算--上位机VC
功能展示
程序序中整型int类型数值的范围为-2147483648到21474836487,如果超出此范围几十几百倍,表达和运算起来就无能为力,当前例程实现大数字表示与计算功能,效果如图,例程初始化填充参与计算编辑框值为int整型的极限值,点击<执行大数运算>可分别计算出此极限值的加减乘除值,并显示出 要点提示 例程封装一简单类实现大型数字的运行,使用非常简单,包含类的头文件#include “BigNum.h“ 之后,就可以通过多种构造函数,构造出数字,数字间就可以进行运算处理 实现功能 1.新建基于对话框的应用程序 2.将例程根目录BigNum.cpp与BigNum.h两文件,也就是大数字类CBigNumber的头文件与源文件复制到自己工程根目录,并加载到工程中,在主对话框头文件中包含此类的头文件#include "BigNum.h“
3.按钮例程的例程给工程添加些许编辑框作为加数,减数,乘数,除数,和等等,再拖拽一按钮控件<执行大数运算>关联点击函数,执行大数字的加减乘除运算 - void CGkbc8Dlg::OnButton1()
- {
- CString sValue,sValue1,sResult;
- GetDlgItemText(IDC_EDIT1,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- CBigNumber Value(atof(sValue),atoi(sValue1));
- //
- GetDlgItemText(IDC_EDIT2,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- CBigNumber Value1(atof(sValue),atoi(sValue1));
- Value = Value+Value1;
- sResult.Format("%fE%d",Value.GetNumber(),Value.GetExp());
- SetDlgItemText(IDC_EDIT3,sResult);
- //<>
- GetDlgItemText(IDC_EDIT4,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- Value = CBigNumber(atof(sValue),atoi(sValue1));
- //
- GetDlgItemText(IDC_EDIT5,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- Value1 = CBigNumber (atof(sValue),atoi(sValue1));
- Value = Value-Value1;
- sResult.Format("%fE%d",Value.GetNumber(),Value.GetExp());
- SetDlgItemText(IDC_EDIT6,sResult);
复制代码- //<>
- GetDlgItemText(IDC_EDIT7,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- Value = CBigNumber(atof(sValue),atoi(sValue1));
- //
- GetDlgItemText(IDC_EDIT8,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- Value1 = CBigNumber(atof(sValue),atoi(sValue1));
- Value = Value*Value1;
- sResult.Format("%fE%d",Value.GetNumber(),Value.GetExp());
- SetDlgItemText(IDC_EDIT9,sResult);
- //<>
- GetDlgItemText(IDC_EDIT10,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- Value = CBigNumber(atof(sValue),atoi(sValue1));
- //
- GetDlgItemText(IDC_EDIT11,sValue);
- sValue1 = sValue.Right(sValue.GetLength()-sValue.Find('E') -1 );
- sValue = sValue.Left(sValue.Find('E'));
- Value1 = CBigNumber(atof(sValue),atoi(sValue1));
- Value = Value/Value1;
- sResult.Format("%fE%d",Value.GetNumber(),Value.GetExp());
- SetDlgItemText(IDC_EDIT12,sResult);
- }
复制代码我们来演示下功能实现的整个过程
|