📄 bignum.cpp
字号:
#include "BigNum.h"
#include <math.h>
CBigNumber::CBigNumber()
{
number=0;
exponent=0;
};
CBigNumber::CBigNumber(float num)
{
number=num;
exponent=0;
Convert();
};
CBigNumber::CBigNumber(float num,int exp)
{
number=num;
exponent=exp;
Convert();
};
void CBigNumber::Convert()
{
if(number==0) return;
while(fabs(number)>=10)
{
number/=10;
exponent+=1;
}
while(fabs(number)<1)
{
number*=10;
exponent-=1;
}
};
CBigNumber CBigNumber::operator+(const CBigNumber& b)
{
CBigNumber result;
int multiple;
multiple=exponent-b.exponent;
if(multiple>0)
{
result.number=number+b.number*pow(10,-multiple);
result.exponent=exponent;
}
else
{
result.number=number*pow(10,multiple)+b.number;
result.exponent=b.exponent;
}
result.Convert();
return result;
};
CBigNumber CBigNumber::operator-(const CBigNumber& b)
{
CBigNumber result;
int multiple;
multiple=exponent-b.exponent;
if(multiple>0)
{
result.number=number-b.number*pow(10,-multiple);
result.exponent=exponent;
}
else
{
result.number=number*pow(10,multiple)-b.number;
result.exponent=b.exponent;
}
result.Convert();
return result;
};
CBigNumber CBigNumber::operator*(const CBigNumber& b)
{
CBigNumber result;
result.number=number*b.number;
result.exponent=exponent+b.exponent;
result.Convert();
return result;
};
CBigNumber CBigNumber::operator/(const CBigNumber& b)
{
CBigNumber result;
if (b.number==0) return 0;
result.number=number/b.number;
result.exponent=exponent-b.exponent;
result.Convert();
return result;
};
CBigNumber CBigNumber::operator=(const CBigNumber& b)
{
number=b.number;
exponent=b.exponent;
return *this;
};
double CBigNumber::GetNumber()
{
return number;
};
int CBigNumber::GetExp()
{
return exponent;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -