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