00001 // BigNum.h: interface for the BigNum class. 00002 // 00003 ////////////////////////////////////////////////////////////////////// 00004 00005 #if !defined(AFX_BIGNUM_H__54FCBDA3_D21D_11D2_9782_444553540000__INCLUDED_) 00006 #define AFX_BIGNUM_H__54FCBDA3_D21D_11D2_9782_444553540000__INCLUDED_ 00007 00008 #if _MSC_VER > 1000 00009 #pragma once 00010 #endif // _MSC_VER > 1000 00011 #include "LDoble.h" 00012 #include <limits.h> 00013 #include <iostream> 00014 using namespace std; 00015 //typedef PNDoble 00016 const unsigned long int MAXBASE=USHRT_MAX+1; 00017 00018 class BigNum 00019 { 00020 LDoble *Lis; 00021 char signo; 00022 private: 00023 virtual void copiar(const BigNum& a); 00024 public: 00025 //Crea el número con valor 0. 00026 BigNum(); 00027 //Crea el número con el valor recibido. 00028 BigNum(int); 00029 /*El vector recibido expresa el número en base 65536. Sign indica 00030 el signo del número (1 positivo, -1 negativo). */ 00031 BigNum(unsigned short int a[],int cant,char sign); 00032 /*Convierte el número desde letras */ 00033 BigNum(char *s); 00034 /*Constructor de copia */ 00035 BigNum(const BigNum& a); 00036 /*Pre : el número no es mayor que el maximo long (4294967295). 00037 Post: devuelve el número como long */ 00038 virtual long A_Numero(); 00039 virtual BigNum& operator = (const BigNum & a); 00040 friend BigNum operator / (const BigNum & a, const BigNum & b); 00041 friend BigNum operator + (const BigNum & a, const BigNum & b); 00042 friend BigNum operator - (const BigNum & a, const BigNum & b); 00043 friend BigNum operator * (const BigNum & a, const BigNum & b); 00044 friend BigNum operator % (const BigNum & a, const BigNum & b); 00045 friend ostream& operator << (ostream& s, const BigNum & m); 00046 virtual int operator == (const BigNum & a) const; 00047 virtual int operator != (const BigNum & a) const; 00048 virtual int operator > (const BigNum & a) const; 00049 virtual int operator < (const BigNum & a) const; 00050 virtual int operator >= (const BigNum & a) const; 00051 virtual int operator <= (const BigNum & a) const; 00052 virtual BigNum& operator++(); 00053 virtual BigNum& operator--(); 00054 virtual BigNum& operator += (const BigNum & a); 00055 virtual BigNum& operator -= (const BigNum & a); 00056 virtual BigNum& operator *= (const BigNum & a); 00057 virtual BigNum& operator /= (const BigNum & a); 00058 virtual BigNum& operator %= (const BigNum & a); 00059 BigNum operator- () { return BigNum(0)-(*this); } 00060 /* friend BigNum& operator++(const BigNum& a); 00061 friend BigNum& operator--(const BigNum& a);*/ 00062 virtual ~BigNum(); 00063 }; 00064 00065 #endif // !defined(AFX_BIGNUM_H__54FCBDA3_D21D_11D2_9782_444553540000__INCLUDED_)
1.4.1