📄 apint.h
字号:
#ifndef __cplusplus
#error Must use C++ for the type apint.
#endif
#if !defined(__APINT_H)
#define __APINT_H
#if !defined(__APFLOAT_H)
#include "apfloat.h"
#endif
// Integer number class
class apint
{
public:
// Constructors
apint (const apfloat &newval) { val = floor (newval); }
apint () {};
// Operator functions
friend apint operator+ (const apint &, const apint &);
friend apint operator- (const apint &, const apint &);
friend apint operator* (const apint &, const apint &);
friend apint operator/ (const apint &, const apint &);
friend apint operator% (const apint &, const apint &);
friend apint operator<< (const apint &, size_t);
friend apint operator>> (const apint &, size_t);
friend bool operator== (const apint &, const apint &);
friend bool operator!= (const apint &, const apint &);
friend bool operator>= (const apint &, const apint &);
friend bool operator<= (const apint &, const apint &);
friend bool operator> (const apint &, const apint &);
friend bool operator< (const apint &, const apint &);
friend std::ostream &operator<< (std::ostream &, const apint &);
friend std::istream &operator>> (std::istream &, apint &);
apint &operator++ ();
apint &operator-- ();
apint operator++ (int);
apint operator-- (int);
apint &operator+= (const apint &);
apint &operator-= (const apint &);
apint &operator*= (const apint &);
apint &operator/= (const apint &);
apint &operator%= (const apint &);
apint &operator<<= (size_t);
apint &operator>>= (size_t);
apint operator+ () const;
apint operator- () const;
// Type-converted functions
apint (int newval) { val = apfloat (newval); }
apint (unsigned newval) { val = apfloat (newval); }
apint (long newval) { val = apfloat (newval); }
apint (unsigned long newval) { val = apfloat (newval); }
apint (double newval) { val = floor (apfloat (newval)); }
apint (char *newval) { val = floor (apfloat (newval)); }
friend apint operator+ (int d1, const apint &d2) { return apint (d1) + d2; }
friend apint operator+ (unsigned d1, const apint &d2) { return apint (d1) + d2; }
friend apint operator+ (long d1, const apint &d2) { return apint (d1) + d2; }
friend apint operator+ (unsigned long d1, const apint &d2) { return apint (d1) + d2; }
friend apint operator+ (const apint &d1, int d2) { return d1 + apint (d2); }
friend apint operator+ (const apint &d1, unsigned d2) { return d1 + apint (d2); }
friend apint operator+ (const apint &d1, long d2) { return d1 + apint (d2); }
friend apint operator+ (const apint &d1, unsigned long d2) { return d1 + apint (d2); }
friend apint operator- (int d1, const apint &d2) { return apint (d1) - d2; }
friend apint operator- (unsigned d1, const apint &d2) { return apint (d1) - d2; }
friend apint operator- (long d1, const apint &d2) { return apint (d1) - d2; }
friend apint operator- (unsigned long d1, const apint &d2) { return apint (d1) - d2; }
friend apint operator- (const apint &d1, int d2) { return d1 - apint (d2); }
friend apint operator- (const apint &d1, unsigned d2) { return d1 - apint (d2); }
friend apint operator- (const apint &d1, long d2) { return d1 - apint (d2); }
friend apint operator- (const apint &d1, unsigned long d2) { return d1 - apint (d2); }
friend apint operator* (int d1, const apint &d2) { return apint (d1) * d2; }
friend apint operator* (unsigned d1, const apint &d2) { return apint (d1) * d2; }
friend apint operator* (long d1, const apint &d2) { return apint (d1) * d2; }
friend apint operator* (unsigned long d1, const apint &d2) { return apint (d1) * d2; }
friend apint operator* (const apint &d1, int d2) { return d1 * apint (d2); }
friend apint operator* (const apint &d1, unsigned d2) { return d1 * apint (d2); }
friend apint operator* (const apint &d1, long d2) { return d1 * apint (d2); }
friend apint operator* (const apint &d1, unsigned long d2) { return d1 * apint (d2); }
friend apint operator/ (int d1, const apint &d2) { return apint (d1) / d2; }
friend apint operator/ (unsigned d1, const apint &d2) { return apint (d1) / d2; }
friend apint operator/ (long d1, const apint &d2) { return apint (d1) / d2; }
friend apint operator/ (unsigned long d1, const apint &d2) { return apint (d1) / d2; }
friend apint operator/ (const apint &d1, int d2) { return d1 / apint (d2); }
friend apint operator/ (const apint &d1, unsigned d2) { return d1 / apint (d2); }
friend apint operator/ (const apint &d1, long d2) { return d1 / apint (d2); }
friend apint operator/ (const apint &d1, unsigned long d2) { return d1 / apint (d2); }
friend apint operator% (int d1, const apint &d2) { return apint (d1) % d2; }
friend apint operator% (unsigned d1, const apint &d2) { return apint (d1) % d2; }
friend apint operator% (long d1, const apint &d2) { return apint (d1) % d2; }
friend apint operator% (unsigned long d1, const apint &d2) { return apint (d1) % d2; }
friend apint operator% (const apint &d1, int d2) { return d1 % apint (d2); }
friend apint operator% (const apint &d1, unsigned d2) { return d1 % apint (d2); }
friend apint operator% (const apint &d1, long d2) { return d1 % apint (d2); }
friend apint operator% (const apint &d1, unsigned long d2) { return d1 % apint (d2); }
friend apfloat operator+ (double d1, const apint &d2) { return apfloat (d1) + d2.val; }
friend apfloat operator+ (char *d1, const apint &d2) { return apfloat (d1) + d2.val; }
friend apfloat operator+ (const apint &d1, double d2) { return d1.val + apfloat (d2); }
friend apfloat operator+ (const apint &d1, char *d2) { return d1.val + apfloat (d2); }
friend apfloat operator- (double d1, const apint &d2) { return apfloat (d1) - d2.val; }
friend apfloat operator- (char *d1, const apint &d2) { return apfloat (d1) - d2.val; }
friend apfloat operator- (const apint &d1, double d2) { return d1.val - apfloat (d2); }
friend apfloat operator- (const apint &d1, char *d2) { return d1.val - apfloat (d2); }
friend apfloat operator* (double d1, const apint &d2) { return apfloat (d1) * d2.val; }
friend apfloat operator* (char *d1, const apint &d2) { return apfloat (d1) * d2.val; }
friend apfloat operator* (const apint &d1, double d2) { return d1.val * apfloat (d2); }
friend apfloat operator* (const apint &d1, char *d2) { return d1.val * apfloat (d2); }
friend apfloat operator/ (double d1, const apint &d2) { return apfloat (d1) / d2.val; }
friend apfloat operator/ (char *d1, const apint &d2) { return apfloat (d1) / d2.val; }
friend apfloat operator/ (const apint &d1, double d2) { return d1.val / apfloat (d2); }
friend apfloat operator/ (const apint &d1, char *d2) { return d1.val / apfloat (d2); }
friend bool operator== (int d1, const apint &d2) { return apfloat (d1) == d2.val; }
friend bool operator== (unsigned d1, const apint &d2) { return apfloat (d1) == d2.val; }
friend bool operator== (long d1, const apint &d2) { return apfloat (d1) == d2.val; }
friend bool operator== (unsigned long d1, const apint &d2) { return apfloat (d1) == d2.val; }
friend bool operator== (double d1, const apint &d2) { return apfloat (d1) == d2.val; }
friend bool operator== (char *d1, const apint &d2) { return apfloat (d1) == d2.val; }
friend bool operator== (const apint &d1, int d2) { return d1.val == apfloat (d2); }
friend bool operator== (const apint &d1, unsigned d2) { return d1.val == apfloat (d2); }
friend bool operator== (const apint &d1, long d2) { return d1.val == apfloat (d2); }
friend bool operator== (const apint &d1, unsigned long d2) { return d1.val == apfloat (d2); }
friend bool operator== (const apint &d1, double d2) { return d1.val == apfloat (d2); }
friend bool operator== (const apint &d1, char *d2) { return d1.val == apfloat (d2); }
friend bool operator!= (int d1, const apint &d2) { return apfloat (d1) != d2.val; }
friend bool operator!= (unsigned d1, const apint &d2) { return apfloat (d1) != d2.val; }
friend bool operator!= (long d1, const apint &d2) { return apfloat (d1) != d2.val; }
friend bool operator!= (unsigned long d1, const apint &d2) { return apfloat (d1) != d2.val; }
friend bool operator!= (double d1, const apint &d2) { return apfloat (d1) != d2.val; }
friend bool operator!= (char *d1, const apint &d2) { return apfloat (d1) != d2.val; }
friend bool operator!= (const apint &d1, int d2) { return d1.val != apfloat (d2); }
friend bool operator!= (const apint &d1, unsigned d2) { return d1.val != apfloat (d2); }
friend bool operator!= (const apint &d1, long d2) { return d1.val != apfloat (d2); }
friend bool operator!= (const apint &d1, unsigned long d2) { return d1.val != apfloat (d2); }
friend bool operator!= (const apint &d1, double d2) { return d1.val != apfloat (d2); }
friend bool operator!= (const apint &d1, char *d2) { return d1.val != apfloat (d2); }
friend bool operator>= (int d1, const apint &d2) { return apfloat (d1) >= d2.val; }
friend bool operator>= (unsigned d1, const apint &d2) { return apfloat (d1) >= d2.val; }
friend bool operator>= (long d1, const apint &d2) { return apfloat (d1) >= d2.val; }
friend bool operator>= (unsigned long d1, const apint &d2) { return apfloat (d1) >= d2.val; }
friend bool operator>= (double d1, const apint &d2) { return apfloat (d1) >= d2.val; }
friend bool operator>= (char *d1, const apint &d2) { return apfloat (d1) >= d2.val; }
friend bool operator>= (const apint &d1, int d2) { return d1.val >= apfloat (d2); }
friend bool operator>= (const apint &d1, unsigned d2) { return d1.val >= apfloat (d2); }
friend bool operator>= (const apint &d1, long d2) { return d1.val >= apfloat (d2); }
friend bool operator>= (const apint &d1, unsigned long d2) { return d1.val >= apfloat (d2); }
friend bool operator>= (const apint &d1, double d2) { return d1.val >= apfloat (d2); }
friend bool operator>= (const apint &d1, char *d2) { return d1.val >= apfloat (d2); }
friend bool operator<= (int d1, const apint &d2) { return apfloat (d1) <= d2.val; }
friend bool operator<= (unsigned d1, const apint &d2) { return apfloat (d1) <= d2.val; }
friend bool operator<= (long d1, const apint &d2) { return apfloat (d1) <= d2.val; }
friend bool operator<= (unsigned long d1, const apint &d2) { return apfloat (d1) <= d2.val; }
friend bool operator<= (double d1, const apint &d2) { return apfloat (d1) <= d2.val; }
friend bool operator<= (char *d1, const apint &d2) { return apfloat (d1) <= d2.val; }
friend bool operator<= (const apint &d1, int d2) { return d1.val <= apfloat (d2); }
friend bool operator<= (const apint &d1, unsigned d2) { return d1.val <= apfloat (d2); }
friend bool operator<= (const apint &d1, long d2) { return d1.val <= apfloat (d2); }
friend bool operator<= (const apint &d1, unsigned long d2) { return d1.val <= apfloat (d2); }
friend bool operator<= (const apint &d1, double d2) { return d1.val <= apfloat (d2); }
friend bool operator<= (const apint &d1, char *d2) { return d1.val <= apfloat (d2); }
friend bool operator> (int d1, const apint &d2) { return apfloat (d1) > d2.val; }
friend bool operator> (unsigned d1, const apint &d2) { return apfloat (d1) > d2.val; }
friend bool operator> (long d1, const apint &d2) { return apfloat (d1) > d2.val; }
friend bool operator> (unsigned long d1, const apint &d2) { return apfloat (d1) > d2.val; }
friend bool operator> (double d1, const apint &d2) { return apfloat (d1) > d2.val; }
friend bool operator> (char *d1, const apint &d2) { return apfloat (d1) > d2.val; }
friend bool operator> (const apint &d1, int d2) { return d1.val > apfloat (d2); }
friend bool operator> (const apint &d1, unsigned d2) { return d1.val > apfloat (d2); }
friend bool operator> (const apint &d1, long d2) { return d1.val > apfloat (d2); }
friend bool operator> (const apint &d1, unsigned long d2) { return d1.val > apfloat (d2); }
friend bool operator> (const apint &d1, double d2) { return d1.val > apfloat (d2); }
friend bool operator> (const apint &d1, char *d2) { return d1.val > apfloat (d2); }
friend bool operator< (int d1, const apint &d2) { return apfloat (d1) < d2.val; }
friend bool operator< (unsigned d1, const apint &d2) { return apfloat (d1) < d2.val; }
friend bool operator< (long d1, const apint &d2) { return apfloat (d1) < d2.val; }
friend bool operator< (unsigned long d1, const apint &d2) { return apfloat (d1) < d2.val; }
friend bool operator< (double d1, const apint &d2) { return apfloat (d1) < d2.val; }
friend bool operator< (char *d1, const apint &d2) { return apfloat (d1) < d2.val; }
friend bool operator< (const apint &d1, int d2) { return d1.val < apfloat (d2); }
friend bool operator< (const apint &d1, unsigned d2) { return d1.val < apfloat (d2); }
friend bool operator< (const apint &d1, long d2) { return d1.val < apfloat (d2); }
friend bool operator< (const apint &d1, unsigned long d2) { return d1.val < apfloat (d2); }
friend bool operator< (const apint &d1, double d2) { return d1.val < apfloat (d2); }
friend bool operator< (const apint &d1, char *d2) { return d1.val < apfloat (d2); }
apint &operator+= (int d) { val = val + d; return *this; }
apint &operator+= (unsigned d) { val = val + d; return *this; }
apint &operator+= (long d) { val = val + d; return *this; }
apint &operator+= (unsigned long d) { val = val + d; return *this; }
apint &operator+= (double d) { *this = val + d; return *this; }
apint &operator+= (char *d) { *this = val + d; return *this; }
apint &operator-= (int d) { val = val - d; return *this; }
apint &operator-= (unsigned d) { val = val - d; return *this; }
apint &operator-= (long d) { val = val - d; return *this; }
apint &operator-= (unsigned long d) { val = val - d; return *this; }
apint &operator-= (double d) { *this = val - d; return *this; }
apint &operator-= (char *d) { *this = val - d; return *this; }
apint &operator*= (int d) { val = val * d; return *this; }
apint &operator*= (unsigned d) { val = val * d; return *this; }
apint &operator*= (long d) { val = val * d; return *this; }
apint &operator*= (unsigned long d) { val = val * d; return *this; }
apint &operator*= (double d) { *this = val * d; return *this; }
apint &operator*= (char *d) { *this = val * d; return *this; }
apint &operator/= (int d) { *this = *this / apint (d); return *this; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -