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;
105 void clear() noexcept;
108 void clearBit (
int bitNumber) noexcept;
111 void setBit (
int bitNumber);
114 void setBit (
int bitNumber,
bool shouldBeSet);
122 void setRange (
int startBit,
int numBits,
bool shouldBeSet);
125 void insertBit (
int bitNumber,
bool shouldBeSet);
132 BigInteger getBitRange (
int startBit,
int numBits)
const;
141 uint32 getBitRangeAsInt (
int startBit,
int numBits)
const noexcept;
148 void setBitRangeAsInt (
int startBit,
int numBits, uint32 valueToSet);
155 void 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);