資源簡介
自定義的C++有符號大整數(shù)類型bigint

代碼片段和文件信息
#include?“bigint.h“
using?namespace?std;
//////////////////////////////////////////////////////////////
void?bigint::format()
{
????int?len?=?strlen(arr);
????arr[len]?=?0;
????for(int?i=len-1;?i>0;?i--){
????????arr[MAX_LEN-len+i]?=?arr[i]-48;?//?數(shù)字字符轉(zhuǎn)轉(zhuǎn)為數(shù)值?
????????arr[i]?=?0;
????}??
????if(arr[0]==‘-‘)?arr[0]?=?1;
????else?if(arr[0]==‘+‘)?arr[0]?=?0;
????else{
????????arr[MAX_LEN-len]?=?arr[0]-48;
????????arr[0]?=?0;
????}
}
bigint::bigint(int?a)
{
????bzero();
????itoa(a?arr?10);????
????format();
}
bigint::bigint(const?char?*str)
{
????bzero();
????const?char?*c?=?str;
????char?*p?=?arr;
????if(*c?==?‘+‘?||?*c?==?‘-‘)
????????*p++?=?*c++;
????while(*c)
????{
????????if(*c>=‘0‘?&&?*c<=‘9‘)
????????????*p++?=?*c++;
????????else?break;
????}
????*p?=?‘\0‘;
????format();
}
bigint::bigint(const?bigint?&obj)
{
????for(int?i=0;?i ????????arr[i]?=?obj.arr[i];
}
bigint&?bigint::operator=(const?bigint?&obj)
{
????if(this?==?&obj)?return?*this;
????for(int?i=0;?i ????????arr[i]?=?obj.arr[i];
????return?*this;
}
//////////////////////////////////////////////////////////////////////
bigint&?bigint::operator++()
{
????int?jw?len?=?length();
????if(arr[0]?==?0){????????
????????for(int?i=MAX_LEN-1;?i>MAX_LEN-len-2;?i--)
????????{
????????????++arr[i];
????????????if(arr[i]>9)
????????????????arr[i]?=?arr[i]?%?10;
????????????else?break;
????????}
????}
????else{
????????for(int?i=MAX_LEN-1;?i>MAX_LEN-len-2;?i--)
????????{
????????????--arr[i];
????????????if(arr[i]>9)
????????????????arr[i]?=?arr[i]?%?10;
????????????else?break;
????????}
????}
????return?*this;????
}
bigint?bigint::operator++(int)
{
????bigint?ret(*this);
????++*this;
????return?ret;
}
bigint&?bigint::operator--()
{
????int?jw?len?=?length();
????if(arr[0]?==?0){????????
????????for(int?i=MAX_LEN-1;?i>MAX_LEN-len-2;?i--)
????????{
????????????--arr[i];
????????????if(arr[i]>9)
????????????????arr[i]?=?arr[i]?%?10;
????????????else?break;
????????}
????}
????else{
????????for(int?i=MAX_LEN-1;?i>MAX_LEN-len-2;?i--)
????????{
????????????++arr[i];
????????????if(arr[i]>9)
????????????????arr[i]?=?arr[i]?%?10;
????????????else?break;
????????}
????}
????return?*this;?
}
bigint?bigint::operator--(int)
{
????bigint?ret(*this);
????--*this;
????return?ret;
}
bigint?bigint::operator-()?const
{
????bigint?ret?=?*this;
????ret.arr[0]?=?1-ret.arr[0];
????return?ret;????
}
bigint?bigint::abs()?const
{
????bigint?ret?=?*this;
????ret.arr[0]?=?0;
????return?ret;????
}
///////////////////////////////////////////////////////////////////
bool?bigint::absbigger(const?bigint?&obj)?const
{
????for(int?i=1;?i ????????if(arr[i]?>?obj.arr[i])
????????????return?true;
????????else?if(arr[i]?????????????return?false;
????}
????return?false;
}?
bool?bigint::abssmaller(const?bigint?&obj)?const
{
????fo
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-03-23?15:05??bigint\
?????文件????????5464??2012-03-23?14:56??bigint\bigint.cpp
?????文件????????2395??2012-03-23?14:48??bigint\bigint.h
?????文件????????2901??2012-03-23?14:44??bigint\bigint_operator.cpp
?????文件????????3923??2012-03-23?14:52??bigint\main.cpp
?????文件??????????80??2012-03-23?15:07??bigint\readme.txt
評論
共有 條評論