-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBigClass.cpp
78 lines (66 loc) · 1.49 KB
/
BigClass.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "BigClass.h"
BigIntClass& BigIntClass::operator=(const BigIntClass& rightSide)
{
this->number = copy(rightSide.number);
return *this;
}
BigIntClass BigIntClass::operator+(BigIntClass &rightSide)
{
BigIntClass res;
res.number = this->number + rightSide.number;
return res;
}
BigIntClass BigIntClass::operator-(BigIntClass &rightSide)
{
BigIntClass res;
res.number = this->number - rightSide.number;
return res;;
}
BigIntClass BigIntClass::operator*(BigIntClass &rightSide)
{
BigIntClass res;
res.number = this->number * rightSide.number;
return res;
}
BigIntClass BigIntClass::operator/(BigIntClass &rightSide)
{
BigIntClass res;
res.number = this->number / rightSide.number;
return res;
}
BigIntClass BigIntClass::operator%(BigIntClass &rightSide)
{
BigIntClass res;
res.number = this->number % rightSide.number;
return res;
}
BigIntClass degree(BigIntClass &primary, BigIntClass &e, BigIntClass &modul)
{
BigIntClass res;
res.number = deg(primary.number, e.number, modul.number);
return res;
}
void BigIntClass::Clear()
{
free((*this).number.index);
}
void BigIntClass::ReadTextFile(const char* filename)
{
BigIntClass res;
res.number = ReadText(filename);
*this = res;
}
void BigIntClass::ReadBinFile(const char* filename)
{
BigIntClass res;
res.number = ReadBin(filename);
*this = res;
}
void BigIntClass::WriteTextFile(const char* filename)
{
WriteText(filename, this->number);
}
void BigIntClass::WriteBinFile(const char* filename)
{
WriteBin(filename, this->number);
}