«Total
Converter» — калькулятор, позволяющий
переводить числа из одной системы счисления в другую в
пределах
двоичной (Binary), троичной (Ternary), двоично-кодированной
троичной (Binary coded
Ternary), восьмеричной (Octal), девятеричной (Novem), десятичной (Decimal) и шестнадцатеричной
(Hexadecimal)
систем.
Калькулятор ориентирован преимущественно
для удобства работы с системами на основе троичной
логики.
Калькулятор поддерживает ввод троичных чисел в
кодировке N,
O, P с помощью
соответствующих символов этих букв с клавиатуры, так и в кодировке -1, 0, +1, но при этом
-1 соответствует символ
« Ї », который может быть введен
с клавиатуры как « I », « i
», операцией «copy-paste» или специальным сочетанием
клавиш. Символ +1 вводится как
просто «1», также вводится символ «0».
Диапазон преобразуемых
чисел:
Десятичное число
представлено
четырьмя байтами как целое со знаком и оперирует со значениями в
диапазоне: от -2147483648 до
2147483647;
Соответственно
шестнадцатеричное
число может быть представлено в диапазоне 0 ... 0FFFFFFFFH,
причем числа 0 ...
7FFFFFFFH являются положительными, а
числа 80000000 ...
0FFFFFFFFH - отрицательными.
Двоичное
представление числа осуществляется, соответственно, в диапазоне
0000.0000.0000.0000.0000.0000.0000.0000
... 1111.1111.1111.1111.1111.1111.1111.1111b .
Числа в восьмеричной
кодировке представлены в диапазоне 0 ... 17777777777o,
20000000000o ...
37777777777o.
Преобразования между десятичной,
шестнадцатеричной, двоичной и восьмеричной системами счисления выполняются
встроенными функциями Java, причем проверка на превышение диапазонов не
производится, поскольку типичные операции не требуют таких больших
значений чисел.
В связи с этим возможно зависание конвертера,
приводящее к тому, что он перестает выполнять преобразования. Проверяется
вводом «-1» в поле ввода десятичных
чисел и попыткой конвертирования. При отсутствии результата конвертер
следует перезапустить.
Преобразование троичных,
девятеричных и двоично-кодированных троичных чисел осуществляется частично
в символьном виде, причем контроль максимальных величин также не
производится.
Ориентировочно троичные числа
обрабатываются в диапазоне 0 ...
319 согласно логике программы преобразования.
Девятеричные числа
обрабатываются также в символьном виде и ограничения на ввод слишком
большого числа не имеют.
Также не имеют таких ограничений троичные
двоично-кодированные числа.
Ввод слишком
больших чисел в троичной и девятеричной кодировках обычно не требуется и
может привести к зависанию конвертера.
Все поля ввода
обслуживаются программными фильтрами, которые не позволяют ввести
неиспользуемые числом символы и корректируют некоторые типичные ошибки
ввода («O»-«0», «I»-«1» и т.п.)
Операции «Inverse cycles» (Циклическое отрицание: rotate up, cycle or right
inverse cycle и rotate down, left cycle,
double inverse cycle) выполняются только над числом в троичной
форме вне зависимости от того, в какой строке находится курсор
ввода.
Операция
«Rotate Up» выполняется
как: 0 ->
1, 1 -> -1, -1 -> 0 .
Операция «Rotate Down» выполняется как:
1 ->
0, 0 -> -1, -1 -> 1 .
Циклические сдвиги:
«Rotate
functions» - «Rotate Left» и
«Rotate
Right» выполняются над числом как в троичной форме, так и в
двоичной форме, в зависимости от того, в какой строке находится курсор
ввода.
Если курсор ввода находится в поле ввода «Binary (0, 1)», то
циклический сдвиг выполняется над этим числом. Если же курсор ввода
находится в любом другом поле ввода, он позиционируется в поле ввода
«Ternary (3) (-1, 0,
+1 = Ї, 0, 1)», и операция сдвига выполняется над числом в троичной
форме.
Циклические
сдвиги выполняются как логические сдвиги, при которых на месте
сдвинутого влево младшего бита записывается бит 0, на месте сдвинутого
вправо старшего бита также записывается бит 0. Сдвинутый вправо
младший бит исчезает безвозвратно.
Операции циклических сдвигов введены
в такой форме для оценки результатов целочисленного умножения и
деления.
Опция «Invert value» поразрядо инвертирует
двоичные и троичные числа.
Опция «Clear all» позволяет очистить все поля
ввода.
При включенном
флажке (чекбоксе) «Calculate unsigned
values» троичные числа
рассматриваются как беззнаковые, причем выполняется следующее
соотношение веса разрядов: Ї, 0, 1 --> 0, 1, 2 или N, O,
P --> 0, 1, 2
Также беззнаковыми становятся
числа с основанием 9: «Novem
(9) ->
(0 ... 8)»
При этом у соответствующих полей
ввода "легенда" маркируется
тёмно-синим цветом.
Такая форма
удобна для рассмотрения троичных и девятеричных чисел как беззнаковых
адресов в памяти.
Двоично-кодированная форма
представления троичных чисел («Binary coded
Ternary(10,00,01)») предназначена для записи их в обычные бинарные
микросхемы запоминающих устройств при выполнении следующего соответствия:
10
-> -1, 00 -> 0, 01 -> 1 .
Флажок (чекбокс)
«Enable Form
sizable» позволяет разрешать и
запрещать изменение размеров формы. Возможность изменения размеров
формы может быть полезна при специфических настройках экрана пользователя,
когда часть вводимых или выводимых чисел уходит за край поля ввода. В этом
случае форму можно растянуть, пропорционально увеличив размер поля
ввода.
Флажок (чекбокс)
«Enable sound on
events» позволяет включать и
выключать звуковое сопровождение операций и нажатия
кнопок.