⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bignum.h

📁 “网络安全技术实践与代码详解”实例代码
💻 H
字号:
// BigNum.h: interface for the CBigNum class.////////////////////////////////////////////////////////////////////////typedef unsigned long DWORD;#ifndef NULL#define NULL ((voind *)0)#endifclass CBigNumString{public:   CBigNumString();   ~CBigNumString();   operator const char *() const;   void Realloc(unsigned int nByteCount);   CBigNumString(const CBigNumString& rhs);   char &operator [](unsigned int nIdx);   const CBigNumString &operator=(const CBigNumString rhs);private:   char *m_szBuffer;   unsigned int m_nSize;};class CBigNum  {public:	CBigNum();	CBigNum(unsigned int);	CBigNum(const CBigNum &copy);   CBigNum(const char *szSourceVal);	virtual ~CBigNum();	CBigNum Pow(unsigned int rhs) const;   CBigNum PowMod(CBigNum rhs, const CBigNum &mod, const clock_t ctShowSteps = 0) const;   CBigNum Inverse(const CBigNum &mod) const;   unsigned int operator&(unsigned int rhs);	void Resize(unsigned int nNewSize);   void Reduce();   CBigNum &operator=(CBigNum rhs);   CBigNum &operator=(const char *szSourceVal);   CBigNum &operator=(unsigned int intVal);   CBigNum &operator<<=(unsigned int rhs);   CBigNum operator<<(unsigned int rhs) const;   CBigNum &operator>>=(unsigned int rhs);   CBigNum operator>>(unsigned int rhs) const;	CBigNum &operator+=(const CBigNum &rhs);   CBigNum &operator-=(const CBigNum &rhs);   CBigNum &operator-=(const unsigned int rhs);   CBigNum operator-(const unsigned int rhs) const;   CBigNum operator+(const CBigNum &rhs) const;   CBigNum operator+(const unsigned int) const;   CBigNum operator*(unsigned int rhs) const;	CBigNum operator*(const CBigNum &rhs) const;   CBigNum &operator*=(unsigned int rhs);   CBigNum &operator*=(const CBigNum &rhs);   CBigNum operator/(const CBigNum &rhs) const;   CBigNum operator/(const unsigned int rhs) const;   CBigNum &operator/=(const CBigNum &rhs);   CBigNum &operator/=(const unsigned int rhs);   CBigNum operator%(const CBigNum &rhs) const;   unsigned int operator%(const unsigned int rhs) const;   CBigNum &operator%=(const CBigNum &rhs);   unsigned int operator%=(const unsigned int rhs);   CBigNum &operator&=(CBigNum rhs);   CBigNum &operator|=(const CBigNum &rhs);   CBigNum operator|(const CBigNum &rhs) const;   CBigNum &operator|=(const unsigned int rhs);   CBigNum operator|(const unsigned int rhs) const;   CBigNum factorial() const;   CBigNum sqrt() const;   unsigned int log10() const;   unsigned int log2() const;   static CBigNum gcd(const CBigNum &x, const CBigNum &y);   static CBigNum lcm(const CBigNum &x, const CBigNum &y);   static CBigNum FromByteString(const char *szIn, const unsigned int nLength = 0);   static CBigNum FromHexString(const char *szIn);   static CBigNum FromBase64String(const char *szIn);   bool operator<(const CBigNum &rhs) const;   bool operator<=(const CBigNum &rhs) const;   bool operator==(const CBigNum &rhs) const;   bool operator!=(const CBigNum &rhs) const;   bool operator>(const CBigNum &rhs) const;   bool operator>=(const CBigNum &rhs) const;   bool operator<(const unsigned int rhs) const;   bool operator<=(const unsigned int rhs) const;   bool operator==(const unsigned int rhs) const;   bool operator!=(const unsigned int rhs) const;   bool operator>(const unsigned int rhs) const;   bool operator>=(const unsigned int rhs) const;   operator bool() const;   operator CBigNumString() const;   operator const char *() const;   CBigNumString ToByteString(bool bMakePrintable = true) const;   CBigNumString ToHexString() const;   //CBigNumString ToBase64String() const;   static const char szBase64[];private:	void HandleCarry();	unsigned int m_nSize;	unsigned int * m_arVal;};

⌨️ 快捷键说明

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