digit_t AsDigit() const
{
- return (m_sign) ? -m_digits[0] : m_digits[0];
+ digit_t digit = (m_digits.size() == 1) ? m_digits[0] : 0xFFFFFFFFFFFFFFFF;
+ return (m_sign) ? -digit : digit;
}
inline bool Sign() const {return m_sign;}
inline bool operator>=(const Arbint & leq) const
{
- return (this->operator==(leq) || this->operator<(leq));
+ return (this->operator==(leq) || this->operator>(leq));
}
inline bool operator>(const Arbint & grea) const
{
bool IsZero() const;
+ //inline operator double() const {return double(AsDigit());}
+ inline operator digit_t() const {return AsDigit();}
+ //inline operator int() const {return int(AsDigit());}
+
unsigned Shrink();
private: