cpp02/ex03/Fixed.hpp

53 lines
1.3 KiB
C++

#ifndef FIXED_HPP
#define FIXED_HPP
#include <iostream>
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);
Fixed abs() const;
friend std::ostream &operator<<(std::ostream &stream, const Fixed &fixed);
private:
int value;
static const int fracbits;
};
#endif