85 bool operator[] (
int bit)
const noexcept;
88 bool isZero() const noexcept;
91 bool isOne() const noexcept;
96 int toInteger() const noexcept;
101 int64 toInt64() const noexcept;
108 BigInteger& clearBit (
int bitNumber) noexcept;
114 BigInteger& setBit (
int bitNumber,
bool shouldBeSet);
122 BigInteger& setRange (
int startBit,
int numBits,
bool shouldBeSet);
125 BigInteger& insertBit (
int bitNumber,
bool shouldBeSet);
132 BigInteger getBitRange (
int startBit,
int numBits) const;
141 uint32 getBitRangeAsInt (
int startBit,
int numBits) const noexcept;
148 BigInteger& setBitRangeAsInt (
int startBit,
int numBits, uint32 valueToSet);
155 BigInteger& shiftBits (
int howManyBitsLeft,
int startBit);
158 int countNumberOfSetBits() const noexcept;
165 int findNextSetBit (
int startIndex) const noexcept;
172 int findNextClearBit (
int startIndex) const noexcept;
177 int getHighestBit() const noexcept;
183 bool isNegative() const noexcept;
188 void setNegative (
bool shouldBeNegative) noexcept;
193 void negate() noexcept;
222 BigInteger operator<< (
int numBitsToShift) const;
223 BigInteger operator>> (
int numBitsToShift) const;
225 bool operator== (const
BigInteger&) const noexcept;
226 bool operator!= (const
BigInteger&) const noexcept;
227 bool operator< (const
BigInteger&) const noexcept;
228 bool operator<= (const
BigInteger&) const noexcept;
229 bool operator> (const
BigInteger&) const noexcept;
230 bool operator>= (const
BigInteger&) const noexcept;
240 int compare (const
BigInteger& other) const noexcept;
249 int compareAbsolute (const
BigInteger& other) const noexcept;
270 void inverseModulo (const
BigInteger& modulus);
294 String toString (
int base,
int minimumNumCharacters = 1) const;
301 void parseString (
StringRef text,
int base);
320 void loadFromMemoryBlock (const
MemoryBlock& data);
324 enum { numPreallocatedInts = 4 };
326 uint32 preallocated[numPreallocatedInts];
327 size_t allocatedSize;
329 bool negative =
false;
331 uint32* getValues() const noexcept;
332 uint32* ensureSize (
size_t);
333 void shiftLeft (
int bits,
int startBit);
334 void shiftRight (
int bits,
int startBit);