cintegerz.h

来自「自己定义的 class -- CIntegerZ 支持高低精度混合运算。」· C头文件 代码 · 共 80 行

H
80
字号
// 十进制
// 高低精度整数混合 加, 减, 乘, 取商, 取余 运算
// 默认一切操作合法
// 使用 ascii 而非 unicode
//

#ifndef C_INTEGER_H_BY_ZJ
#define C_INTEGER_H_BY_ZJ

#include <string>
using std::string;

// 高精度数组长度
#define MAX_CINTEGERZ_IP_LENGTH     610

class CIntegerZ
{
public:
        CIntegerZ();
        CIntegerZ( int );
        CIntegerZ( string & );
        CIntegerZ( char * );

        ~CIntegerZ();

        CIntegerZ operator=( int );
        CIntegerZ operator=( string & );
        CIntegerZ operator=( char * );

        CIntegerZ Abs( void );
        CIntegerZ NegativeAbs( void );

        string CIntZ2Str( void );

        friend int operator>( CIntegerZ &, CIntegerZ & );
        friend int operator>( int,         CIntegerZ & );
        friend int operator>( CIntegerZ &, int         );

        friend int operator<( CIntegerZ &, CIntegerZ & );
        friend int operator<( int,         CIntegerZ & );
        friend int operator<( CIntegerZ &, int         );

        friend int operator==( CIntegerZ &, CIntegerZ & );
        friend int operator==( int,         CIntegerZ & );
        friend int operator==( CIntegerZ &, int         );

        friend int operator>=( CIntegerZ &, CIntegerZ & );
        friend int operator>=( int,         CIntegerZ & );
        friend int operator>=( CIntegerZ &, int         );

        friend int operator<=( CIntegerZ &, CIntegerZ & );
        friend int operator<=( int,         CIntegerZ & );
        friend int operator<=( CIntegerZ &, int         );

        friend CIntegerZ operator+( CIntegerZ &, CIntegerZ & );
        friend CIntegerZ operator+( int,         CIntegerZ & );
        friend CIntegerZ operator+( CIntegerZ &, int         );

        friend CIntegerZ operator-( CIntegerZ &, CIntegerZ & );
        friend CIntegerZ operator-( int,         CIntegerZ & );
        friend CIntegerZ operator-( CIntegerZ &, int         );

        friend CIntegerZ operator*( CIntegerZ &, CIntegerZ & );
        friend CIntegerZ operator*( int,         CIntegerZ & );
        friend CIntegerZ operator*( CIntegerZ &, int         );

        friend CIntegerZ operator/( CIntegerZ &, CIntegerZ & );
        friend CIntegerZ operator/( int,         CIntegerZ & );
        friend CIntegerZ operator/( CIntegerZ &, int         );

        friend CIntegerZ operator%( CIntegerZ &, CIntegerZ & );
        friend CIntegerZ operator%( int,         CIntegerZ & );
        friend CIntegerZ operator%( CIntegerZ &, int         );

private:
        int bPositive, ip[MAX_CINTEGERZ_IP_LENGTH];
        static int rrrr, rlen, nlen, maxlen;
};

#endif

⌨️ 快捷键说明

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