mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +00:00
feat(big): add SBigAnd
This commit is contained in:
parent
c42bad55a2
commit
6801b32a99
8 changed files with 111 additions and 0 deletions
|
|
@ -7,6 +7,10 @@ void SBigAdd(BigData* a, BigData* b, BigData* c) {
|
|||
Add(a->Primary(), b->Primary(), c->Primary());
|
||||
}
|
||||
|
||||
void SBigAnd(BigData* a, BigData* b, BigData* c) {
|
||||
And(a->Primary(), b->Primary(), c->Primary());
|
||||
}
|
||||
|
||||
void SBigBitLen(BigData* num, uint32_t* len) {
|
||||
auto& buffer = num->Primary();
|
||||
buffer.Trim();
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
void SBigAdd(BigData* a, BigData* b, BigData* c);
|
||||
|
||||
void SBigAnd(BigData* a, BigData* b, BigData* c);
|
||||
|
||||
void SBigBitLen(BigData* num, uint32_t* len);
|
||||
|
||||
int32_t SBigCompare(BigData* a, BigData* b);
|
||||
|
|
|
|||
|
|
@ -22,6 +22,15 @@ void Add(BigBuffer& a, const BigBuffer& b, const BigBuffer& c) {
|
|||
a.SetCount(i);
|
||||
}
|
||||
|
||||
void And(BigBuffer& a, const BigBuffer& b, const BigBuffer& c) {
|
||||
uint32_t i = 0;
|
||||
for (; b.IsUsed(i) || c.IsUsed(i); i++) {
|
||||
a[i] = c[i] & b[i];
|
||||
}
|
||||
|
||||
a.SetCount(i);
|
||||
}
|
||||
|
||||
int32_t Compare(const BigBuffer& a, const BigBuffer& b) {
|
||||
int32_t result = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ void Add(BigBuffer& a, const BigBuffer& b, uint32_t c);
|
|||
|
||||
void Add(BigBuffer& a, const BigBuffer& b, const BigBuffer& c);
|
||||
|
||||
void And(BigBuffer& a, const BigBuffer& b, const BigBuffer& c);
|
||||
|
||||
int32_t Compare(const BigBuffer& a, const BigBuffer& b);
|
||||
|
||||
void Div(BigBuffer& a, uint32_t* b, const BigBuffer& c, uint64_t d);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue