"Врагу, которым восхищаешься, легче вселить в тебя ужас" Ф. Херберт. "Дюна".
Необходимость встроенного калькулятора сегодня сомнений ни у кого не вызывает. Хакеру настолько часто приходится возиться с разными системами счисления, битовыми масками, относительными переходами, что от всего этого голова пойдет кругом, если потребуется проводить вычисления в уме.
Впервые полноценный калькулятор, насколько помнится, появился в QVIEW, намного опередив конкурентов. В свое время это даже послужило причиной
отказа от HIEW-a, у которого такой калькулятор появился относительно недавно и, к сожалению, сильно проигрывает QVIEW-скому.
Признаться, непонятна позиция автора в этом вопросе. Почему бы ему если не опередить, то хотя бы просто догнать конкурентов? Тем более, что основное различие как раз и состоит в отсутствии поддержки битовой системы исчисления. Т.е. как раз того, ради чего калькулятор в большинстве случаев и нужен. Битовые операции в основном приходится выполнять при разборе различных флагов и атрибутов.
К счастью, во всем остальном калькулятор HIEW-a ни в чем не уступает своим собратьям и поддерживает все типовые логические и математические операции, которые подробно будут описаны ниже:
Скобки: HIEW поддерживает круглые скобки. Если их не ставить, то операции будут выполняться в порядке старшинства. Однако рекомендуется не полагаться на это, а все же не полениться и расставить побольше скобок. Они еще никогда никому не помешали.
'-'Вычитание, а также отрицательное число. При этом двойное слово дополняется до нуля. К сожалению, выбрать другую размерность операндов никак не получится. По крайней мере в текущих версиях.
'+'Сложение, а также положительное число. Забавно, что HIEW переваривает такие конструкции, как '+-+-++' и подобные им. При этом '-' изменяет значение всех знаков, стоящих правее в цепочке, на противоположное. Математически это верно, но ценность этого сомнительна.
'*'Умножение. Поддерживает знаковые числа. Конструкции типа '**' не воспринимаются синтаксическим анализатором. (Возведение в степень, увы, отсутствует).
'/' Целочисленное деление. '%' Взятие остатка.
Внимание! HIEW содержит большой и очень-очень неприятный баг. Операция 'X % 0' приводит к аварийному завершению и выходу в DOS без сохранения проделанной работы.