Библиотека String  1.0
Own String library. Лабораторная работа ФБИТ ИТМО
binstr.h
См. документацию.
1 /*!
2 \file
3 \brief Заголовочный файл с описанием класса "Битовая строка"
4 
5 Данный файл содержит в себе определения производного
6 от "Строка" класса "Битовая строка"
7 */
8 #ifndef OWN_STRING_BINSTR_H
9 #define OWN_STRING_BINSTR_H
10 
11 #include "string.h"
12 
13 namespace own {
14 
15 /*!
16 \brief Производный от "Строка" класс "Битовая строка"
17 
18 Строки данного класса могут содержать только символы '0' или '1'. Если
19 в составе инициализирующей строки будут встречены любые символы, отличные
20 от допустимых, "Битовая строка" принимает нулевое значение.
21 Содержимое данных строк рассматривается как двоичное число.
22 Отрицательные числа хранятся в дополнительном коде.
23 */
24 class BinStr : public String
25 {
26 public:
27  /*!
28  Конструктор без параметров (длина строки = 0) или принимающий длину строки
29  \param[in] len Длина строки (по умолчанию 0)
30  */
31  BinStr(int = 0);
32 
33  /*!
34  Конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом)
35  \param[in] s Си-строка
36  */
37  BinStr(const char*);
38 
39  /*!
40  Конструктор копирования
41  \param[in] from Исходный объект
42  */
43  BinStr(const BinStr&);
44 
45  /*!
46  Деструктор
47  */
48  ~BinStr();
49 
50  //! Знак двочного числа
51  enum SIGN {
52  POSITIVE = 1, ///< Положительное число
53  NEGATIVE = 0 ///< Отрицательное число
54  };
55 
56  /*!
57  Получение знака двоичного числа
58  \return Знак числа SIGN::POSITIVE или SIGN::NEGATIVE
59  */
60  int getSign() const;
61 
62  /*!
63  Проверка на положительное число
64  \return Является ли число положительным
65  */
66  bool isPositive() const;
67 
68  /*!
69  Проверка на отрицательное число
70  \return Является ли число отрицательным
71  */
72  bool isNegative() const;
73 
74  /*!
75  Преобразование строки в беззнаковое число
76  \return Беззнаковое число
77  */
78  int getUnsignedNum() const;
79 
80  /*!
81  Преобразование строки в число
82  \return Число
83  */
84  int getNum() const;
85 
86  /*!
87  Оператор присваивания
88  */
89  BinStr& operator=(const BinStr&);
90 
91  /*!
92  Операция "исключающее или"
93  \return Сумма по модулю 2
94  */
95  friend BinStr operator^(const BinStr&, const BinStr&);
96 
97  /*!
98  Операция "исключающее или"
99  \return Сумма по модулю 2
100  */
101  friend BinStr operator^(const BinStr&, int);
102 
103  /*!
104  Операция "исключающее или"
105  \return Сумма по модулю 2
106  */
107  friend BinStr operator^(int, const BinStr&);
108 
109  /*!
110  Проверка равенства строк как бинарных чисел
111  */
112  friend int operator==(const BinStr&, const BinStr&);
113 
114  /*!
115  Проверка равенства бинарной строки и числа
116  */
117  friend int operator==(const BinStr&, int);
118 
119  /*!
120  Проверка равенства бинарной строки и числа
121  */
122  friend int operator==(int, const BinStr&);
123 };
124 
125 }
126 #endif // OWN_STRING_BINSTR_H
own::BinStr::operator==
friend int operator==(const BinStr &, const BinStr &)
Definition: binstr.cpp:177
own::BinStr::isNegative
bool isNegative() const
Definition: binstr.cpp:69
own::BinStr::getSign
int getSign() const
Definition: binstr.cpp:56
own::BinStr::getNum
int getNum() const
Definition: binstr.cpp:84
own::String
Базовый класс "Строка".
Definition: string.h:17
string.h
Заголовочный файл с описанием класса "Строка".
own::BinStr::NEGATIVE
@ NEGATIVE
Отрицательное число
Definition: binstr.h:53
own::BinStr::BinStr
BinStr(int=0)
Definition: binstr.cpp:16
own::BinStr::POSITIVE
@ POSITIVE
Положительное число
Definition: binstr.h:52
own::BinStr::isPositive
bool isPositive() const
Definition: binstr.cpp:64
own::BinStr::getUnsignedNum
int getUnsignedNum() const
Definition: binstr.cpp:74
own::BinStr::operator=
BinStr & operator=(const BinStr &)
Definition: binstr.cpp:102
own::BinStr::operator^
friend BinStr operator^(const BinStr &, const BinStr &)
Definition: binstr.cpp:114
own::BinStr::~BinStr
~BinStr()
Definition: binstr.cpp:51
own::BinStr
Производный от "Строка" класс "Битовая строка".
Definition: binstr.h:25
own::BinStr::SIGN
SIGN
Знак двочного числа
Definition: binstr.h:51