chugeinteger.h

来自「利用Linklist实现超大整数之加减乘除」· C头文件 代码 · 共 71 行

H
71
字号
#include <string>

using namespace std;

#ifndef _H_CHugeInteger_
#define _H_CHugeInteger_

typedef unsigned char BYTE;
typedef unsigned int  UINT;

typedef  struct  NODE
{
	BYTE	data;
	struct	NODE* p;
	struct	NODE* n;
}NODE,*NODEH;

typedef struct LIST
{
    NODEH head;   
    NODEH end;   
    int   length;
}LIST,*LISTH;

class HugeInteger
{
public:
	HugeInteger();
	~HugeInteger();

	void input(string A,string B);
	void output();
	void output(char* A);
	void add();
	void subtract();
	void multiply();
	void divide();
	void modulus();
	bool isEqualTo();
	bool isNotEqualTo();
	bool isGreaterThan();
	bool isLessThan();
	bool isGreaterThanOrEqualTo();
	bool isLessThanOrEqualTo();
	bool isZero(string str_num);

private:
	bool	flag;
	string	a;
	string	b;
	int		sig;
    LISTH	NUM;
};

bool	InitList(LISTH& L);
NODEH	NMalloc(const BYTE& elem);
bool	ADD(const LISTH& La,LISTH& Lb);
bool	SUB(const LISTH& La,LISTH& Lb);
bool	PreAdd(LISTH& L,const BYTE& elem);
bool	EndAdd(LISTH& L,const BYTE& elem);
bool	DestoryList(LISTH& L);
void	PrintList(LISTH& L);
bool	AddZero(LISTH& L,UINT count);
bool	BitMul(const LISTH& L,const UINT number,LISTH& NUM);
bool	CmpHGInt(LISTH& L1,LISTH& L2,UINT Len);
bool	DivCmp(LISTH& L1,LISTH& L2);
void	CopyLIST(LISTH& Src,LISTH& Des,UINT Len);
void	TestDIV(const LISTH& BCS,LISTH& TMPCS,LISTH& NUM,LISTH& TSTPDT);

#endif /* _H_CHugeInteger_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?