#ifndef FIXED_HPP #define FIXED_HPP #include class Fixed { public: Fixed(); Fixed(const int val); Fixed(const float val); Fixed(const Fixed &other); Fixed &operator=(const Fixed &other); ~Fixed(); int getRawBits(void) const; void setRawBits(int const raw); float toFloat(void) const; int toInt(void) const; std::string toBin(void) const; bool operator>(const Fixed &other) const; bool operator<(const Fixed &other) const; bool operator>=(const Fixed &other) const; bool operator<=(const Fixed &other) const; bool operator==(const Fixed &other) const; bool operator!=(const Fixed &other) const; const Fixed operator+(const Fixed &other) const; const Fixed operator-(const Fixed &other) const; const Fixed operator*(const Fixed &other) const; const Fixed operator/(const Fixed &other) const; Fixed operator++(); Fixed operator--(); Fixed operator++(int); Fixed operator--(int); static Fixed &min(Fixed &left, Fixed &right); static const Fixed &min(const Fixed &left, const Fixed &right); static Fixed &max(Fixed &left, Fixed &right); static const Fixed &max(const Fixed &left, const Fixed &right); friend std::ostream &operator<<(std::ostream &stream, const Fixed &fixed); private: int value; static const int fracbits; }; #endif