www.pudn.com > BigNumberCalculater.rar > NumberOperate.h


// NumberOperate.h: interface for the CNumberOperate class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_NUMBEROPERATE_H__3164B0CD_8724_4968_987B_7A2689FE1F02__INCLUDED_) 
#define AFX_NUMBEROPERATE_H__3164B0CD_8724_4968_987B_7A2689FE1F02__INCLUDED_ 
 
//********************************************************************* 
//本类可实现位操作(与、或、非、异或、(循环)左移位、(循环)右移位),四则运算(均不限制位数) 
//考虑到系统资源问题,请不要输入过大的数 
//提供三个四则运算重载函数,用于不同场合及对速度不同要求时使用 
//但要求速度的同时,对输入参数的合法性要求也不同,速度最慢,合法性要求最低 
//相应,速度最快的函数,对参数的合法性要求最高 
//在进行数的位操作时,结果返回的为二进制(最前面的零会自动去除),进行四则运算时,结果返回的为十进制 
//作者:裴泽良 
//时间:20051215 
//******************************************************************** 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
class CNumberOperate 
{ 
public: 
	CNumberOperate(); 
	virtual ~CNumberOperate(); 
 
public: 
	CString NumberAdd(CString number1,CString number2); 
	CString NumberSub(CString number1,CString number2); 
	CString NumberMulti(CString number1,CString number2); 
	BOOL NumberDiv(CString number1,CString number2, CString &resultint,CString &resultelse); 
	int Add(char*buffer1, char*buffer2, char*buffers); 
	int Sub(char*buffer1, char*buffer2, char*buffers); 
	int Multi(char*buffer1, char*buffer2, char*buffers); 
	char* Div(char*buffer1, char*buffer2, char *bufferint, int &intcount); 
	int NumberCompare(CString number1, CString number2); 
	int NumberCompare(char*buffer1, char*buffer2); 
}; 
 
#endif // !defined(AFX_NUMBEROPERATE_H__3164B0CD_8724_4968_987B_7A2689FE1F02__INCLUDED_)