Калькулятор

"Врагу, которым восхищаешься, легче вселить в тебя ужас" Ф. Херберт. "Дюна".

Необходимость встроенного калькулятора сегодня сомнений ни у кого не вызывает. Хакеру настолько часто приходится возиться с разными системами счисления, битовыми масками, относительными переходами, что от всего этого голова пойдет кругом, если потребуется проводить вычисления в уме.

Впервые полноценный калькулятор, насколько помнится, появился в QVIEW, намного опередив конкурентов. В свое время это даже послужило причиной

отказа от HIEW-a, у которого такой калькулятор появился относительно недавно и, к сожалению, сильно проигрывает QVIEW-скому.

Признаться, непонятна позиция автора в этом вопросе. Почему бы ему если не опередить, то хотя бы просто догнать конкурентов? Тем более, что основное различие как раз и состоит в отсутствии поддержки битовой системы исчисления. Т.е. как раз того, ради чего калькулятор в большинстве случаев и нужен. Битовые операции в основном приходится выполнять при разборе различных флагов и атрибутов.


К счастью, во всем остальном калькулятор HIEW-a ни в чем не уступает своим собратьям и поддерживает все типовые логические и математические операции, которые подробно будут описаны ниже:

 

Скобки: HIEW поддерживает круглые скобки. Если их не ставить, то операции будут выполняться в порядке старшинства. Однако рекомендуется не полагаться на это, а все же не полениться и расставить побольше скобок. Они еще никогда никому не помешали.

'-'Вычитание, а также отрицательное число. При этом двойное слово дополняется до нуля. К сожалению, выбрать другую размерность операндов никак не получится. По крайней мере в текущих версиях.

'+'Сложение, а также положительное число. Забавно, что HIEW пере­варивает такие конструкции, как '+-+-++' и подобные им. При этом '-' изменяет значение всех знаков, стоящих правее в цепочке, на противоположное. Матема­тически это верно, но ценность этого сомнительна.

 
 

'*'Умножение. Поддерживает знаковые числа. Конструкции типа '**' не воспринимаются синтаксическим анализатором. (Возведение в степень, увы, отсутствует).

'/' Целочисленное деление. '%' Взятие остатка.

Внимание! HIEW содержит большой и очень-очень неприятный баг. Операция 'X % 0' приводит к аварийному завершению и выходу в DOS без сохранения проделанной работы.