My Project
Public Member Functions | Public Attributes | Friends | List of all members
BigNumber Class Reference

#include <BigNumber.h>

Public Member Functions

 BigNumber ()
 default constructor. More...
 
 BigNumber (string s)
 Overload contructor for string input. More...
 
 BigNumber (char *s)
 constructor char type More...
 
 BigNumber (int n)
 constructor int type More...
 
 BigNumber (long int n)
 constructor long int type More...
 
 BigNumber (long long int n)
 constructor long long int type More...
 
 BigNumber (double n)
 constructor double type More...
 
 BigNumber (long double n)
 constructor long double type More...
 
void set (string &s)
 set BigNumber correspondent to input string More...
 
void set (int n)
 set BigNumber correspondent to input integer type More...
 
void set (long int n)
 
void set (long long int n)
 
void set (double n)
 
void set (long double n)
 
void set (unsigned long int n)
 
void set (char *s)
 set BigNumber correspondent to input characters More...
 
void set_to_zero ()
 set BigNumber equal to zero More...
 
string get_string ()
 get BigNumber as a string More...
 
bool get_sign () const
 get sign of the number True= positive, false= negative More...
 
BigNumber add (BigNumber &b)
 add a BigNumber to this BigNumber More...
 
BigNumber mul (BigNumber &b)
 multiply a BigNumber to this BigNumber More...
 
BigNumber sub (BigNumber &b)
 Subtract a BigNumber from this BigNumber. More...
 
BigNumber div (BigNumber &b)
 divide a BigNumber to this BigNumber More...
 
void mul_10 (std::string::size_type=1)
 multiply a BigNumber by 10 ^ b More...
 
void dec ()
 decrease this BigNumber by 1 More...
 
void inc ()
 increase this BigNumber by 1 More...
 
void abs ()
 convert this BigNumber to absolute value More...
 
bool operator!= (BigNumber &b)
 
bool operator== (BigNumber &b)
 
bool operator> (BigNumber &b)
 
bool operator< (BigNumber &b)
 
bool operator>= (BigNumber &b)
 
bool operator<= (BigNumber &b)
 
BigNumber operator+ (BigNumber &b)
 
BigNumber operator- (BigNumber &b)
 
BigNumber operator/ (BigNumber &b)
 
BigNumber operator* (BigNumber &b)
 
void operator-- ()
 
void operator++ ()
 

Public Attributes

string::size_type max_div_digits = 100
 maximum digits of fraction part during dividing More...
 

Friends

ostream & operator<< (ostream &os, BigNumber &b)
 

Constructor & Destructor Documentation

◆ BigNumber() [1/8]

BigNumber::BigNumber ( )

default constructor.

◆ BigNumber() [2/8]

BigNumber::BigNumber ( string  s)

Overload contructor for string input.

◆ BigNumber() [3/8]

BigNumber::BigNumber ( char *  s)

constructor char type

◆ BigNumber() [4/8]

BigNumber::BigNumber ( int  n)

constructor int type

◆ BigNumber() [5/8]

BigNumber::BigNumber ( long int  n)

constructor long int type

◆ BigNumber() [6/8]

BigNumber::BigNumber ( long long int  n)

constructor long long int type

◆ BigNumber() [7/8]

BigNumber::BigNumber ( double  n)

constructor double type

◆ BigNumber() [8/8]

BigNumber::BigNumber ( long double  n)

constructor long double type

Member Function Documentation

◆ abs()

void BigNumber::abs ( )

convert this BigNumber to absolute value

Disregard to the sign of the BigNumber it will always set to positive sign

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "-1"
i.abs();
std::cout << i << std::endl;
{
Parameters
noneed
Returns
void
See also
dec()
add()
sub()
mul()
div()
mul_10()

◆ add()

BigNumber BigNumber::add ( BigNumber b)

add a BigNumber to this BigNumber

overloaded operator + also can be used

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "517625387123871628"
BigNumber j = "0.00982398"
k = i + j;
i.add(j);
std::cout << i << std::endl;
std::cout << k << std::endl;
{
Parameters
bis the BigNumber that will added to this BigNumber
Returns
BigNumber
See also
sub()
mul()
div()
mul_10()

◆ dec()

void BigNumber::dec ( )

decrease this BigNumber by 1

overloaded operator – also can be used

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "1000"
i.dec();
std::cout << i << std::endl;
--i;
std::cout << i << std::endl;
{
Parameters
noneed
Returns
void
See also
inc()
add()
sub()
mul()
div()
mul_10()

◆ div()

BigNumber BigNumber::div ( BigNumber b)

divide a BigNumber to this BigNumber

overloaded operator / also can be used

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "10"
BigNumber j = "3"
i.max_div_digits = 100; //continue dividing up to 100 fractional digits
k = i / j;
i.div(j);
std::cout << i << std::endl;
std::cout << k << std::endl;
{
Parameters
bis the BigNumber as divisor
Returns
BigNumber
See also
add()
sub()
dmul()
mul_10()

◆ get_sign()

bool BigNumber::get_sign ( ) const

get sign of the number True= positive, false= negative

◆ get_string()

string BigNumber::get_string ( )

get BigNumber as a string

it will generate a string to show a BigNumber value

Parameters
noneed
Returns
void

◆ inc()

void BigNumber::inc ( )

increase this BigNumber by 1

overloaded operator ++ also can be used

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "1000"
i.inc();
std::cout << i << std::endl;
++i;
std::cout << i << std::endl;
{
Parameters
noneed
Returns
void
See also
dec()
add()
sub()
mul()
div()
mul_10()

◆ mul()

BigNumber BigNumber::mul ( BigNumber b)

multiply a BigNumber to this BigNumber

overloaded operator * also can be used

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "30"
BigNumber j = "0.2"
k = i * j;
i.mul(j);
std::cout << i << std::endl;
std::cout << k << std::endl;
{
Parameters
bis the BigNumber that multiply to this BigNumber
Returns
BigNumber
See also
add()
sub()
div()
mul_10()

◆ mul_10()

void BigNumber::mul_10 ( std::string::size_type  i = 1)

multiply a BigNumber by 10 ^ b

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "3.14"
i.mul_10();
std::cout << i << std::endl;
i.mul_10(3);
std::cout << i << std::endl;
{
Parameters
unsignedsize_type is the number of 10 that multiply to this BigNumber (Default = 1)
Returns
BigNumber
See also
add()
mul()
div()
sub()

◆ operator!=()

bool BigNumber::operator!= ( BigNumber b)

◆ operator*()

BigNumber BigNumber::operator* ( BigNumber b)

◆ operator+()

BigNumber BigNumber::operator+ ( BigNumber b)

◆ operator++()

void BigNumber::operator++ ( )

◆ operator-()

BigNumber BigNumber::operator- ( BigNumber b)

◆ operator--()

void BigNumber::operator-- ( )

◆ operator/()

BigNumber BigNumber::operator/ ( BigNumber b)

◆ operator<()

bool BigNumber::operator< ( BigNumber b)

◆ operator<=()

bool BigNumber::operator<= ( BigNumber b)

◆ operator==()

bool BigNumber::operator== ( BigNumber b)

◆ operator>()

bool BigNumber::operator> ( BigNumber b)

◆ operator>=()

bool BigNumber::operator>= ( BigNumber b)

◆ set() [1/8]

void BigNumber::set ( string &  s)

set BigNumber correspondent to input string

a member function initialize BigNumber from input string of valid digits.

  • Sign is defined by "+" or "-" in first character (there is no need to add sign for positive numbers).
  • Integer part can separated with "." from fractional part.
  • Zeros befor number will be ignored.
Parameters
sthe string of valid digits
Returns
void
See also
set(char *s)

◆ set() [2/8]

void BigNumber::set ( int  n)

set BigNumber correspondent to input integer type

a member function initialize BigNumber from input an integer

the number limit is limit of integer type

Parameters
nthe input number with double or integer type
Returns
void
See also
set(char *s)

◆ set() [3/8]

void BigNumber::set ( long int  n)
See also
set(int n)

◆ set() [4/8]

void BigNumber::set ( long long int  n)
See also
set(int n)

◆ set() [5/8]

void BigNumber::set ( double  n)
See also
set(int n)

◆ set() [6/8]

void BigNumber::set ( long double  n)
See also
set(int n)

◆ set() [7/8]

void BigNumber::set ( unsigned long int  n)
See also
set(int n)

◆ set() [8/8]

void BigNumber::set ( char *  s)

set BigNumber correspondent to input characters

a member function initialize BigNumber from input Char type with point to the valid digits

  • Sign is defined by "+" or "-" in first character (there is no need to add sign for positive numbers).
  • Integer part can separated with "." from fractional part.
  • Zeros befor number will be ignored.
Parameters
sas char type point to valid digits
Returns
void
See also
set()

◆ set_to_zero()

void BigNumber::set_to_zero ( )

set BigNumber equal to zero

Parameters
noneed
Returns
void
See also
set()

◆ sub()

BigNumber BigNumber::sub ( BigNumber b)

Subtract a BigNumber from this BigNumber.

overloaded operator - also can be used

#include "BigNumber.h"
#include <iostream>
#include <string>
int main() {
BigNumber i = "350"
BigNumber j = "200"
k = i - j;
i.sub(j);
std::cout << i << std::endl;
std::cout << k << std::endl;
{
Parameters
bis the BigNumber that subtract from this BigNumber
Returns
BigNumber
See also
add()
mul()
div()
mul_10()

Friends And Related Function Documentation

◆ operator<<

ostream& operator<< ( ostream &  os,
BigNumber b 
)
friend

Member Data Documentation

◆ max_div_digits

string::size_type BigNumber::max_div_digits = 100

maximum digits of fraction part during dividing


The documentation for this class was generated from the following files: