Поддерживаются базовые арифметические операции и ввод десятичных чисел. Операции производятся над значением из единственного регистра (он же - приёмник результата) и, если операция бинарная, вторым операндом, вводимым после оператора.
Размер вводимых чисел ограничен 10 десятичными цифрами.
- сложение
+ - вычитание
- - умножение
* - деление
/ - остаток от деления
% - инвертирование знака
_ - возведение в степень
^ - квадратный корень
SQRT
Пользовательский ввод построчно читается из стандартного ввода, в каждой строке ожидается одна операция или ввод числа (без знака):
op [arg]
number
Результат каждой операции выводится в стандартный вывод, сообщения об ошибках - в стандартный вывод ошибок.
Требуется расширить реализацию калькулятора поддержкой дополнительных систем счисления - позволить вводить пользователю числа в двоичном, восьмеричном и шестнадцатеричном виде (как целые, так и дробные).
Вывод результата остаётся без изменений, в десятичном виде.
Поменять код так, чтобы программный интерфейс не поменялся - реализация должна предоставлять в качестве интерфейса функцию double process_line(double, const std::string &).
- двоичные:
0b101.11 - восьмеричные:
01347.7 - шестнадцатеричные:
0xFF.1C
Регистр букв не должен иметь значения (0B11 == 0b11, 0XaF == 0xAF).