Р. ЛАФОРЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть13) онлайн
Числа как строки
Класс verylong хранит числа в виде строк разрядов. Это строки старомодного ти-
па char* из языка C. В этом контексте с ними проще работать, чем с типом string.
Именно использованием этого уже подзабытого типа объясняется такая большая
разрядность: C++ может рассматривать эти строки просто как массивы. Таким
образом, можно хранить в строках числа сколь угодно большой разрядности.
В классе verylong есть два компонентных данных: массив типа char, хранящий
строку разрядов, и целочисленное значение длины строки (последнее, строго
говоря, не столь необходимо, но использовать его как-то проще, чем постоянно
вычислять strlen() для нахождения длины строки). Цифры (собственно, разряды)
в строке хранятся в обратном порядке, таким образом, последняя значащая
цифра содержится в vLstr[0]. Это упрощает выполнение операций над строкой.
На рис. 13.2 показано, как число хранится в строке.
Рис. 13.2. Число типа verylong
Мы включили в программу возможность складывать и умножать числа в фор-
мате verylong. В качестве упражнения можем предложить добавить функции вы-
читания и деления.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
