Представление троичного числа в ЭВМ, оперирующей двоичными числами, является довольно затруднительным. Чтобы уйти от этого проектировались специальные ЭВМ, у которых базовый формат данных был троичным. Это достигалось использованием специальных элементов памяти с третьим состоянием. Однако в нашем случае такое решение невозможно, так как мы жестко привязаны к ЭВМ с архитектурой IBM.
Для представления троичного числа двоичным можно использовать два основных метода:
— Специальное кодирование числа;
— Представление троичного числа двумя двоичными разрядами.
Первый метод позволяет экономить память, но, при перемножении чисел представленных в таком виде много времени будет тратиться на их распознавание и возникнут значительные сложности с реализацией перемножающего устройства. При втором методе память используется не так экономно, но не требуется тратить время на перекодирование чисел и структура перемножающего устройства сильно упрощается. Это в свою очередь позволяет достичь высокого быстродействия при сравнительно малых аппаратных затратах и следовательно невысокой стоимости устройства. Поэтому для проектируемого устройства принимаем второй способ представления данных.
Один разряд троичного числа представлен двумя двоичными разрядами (см. рис. 1)
Р2 |
Р1 |
Рис. 1 Представление троичного числа
Соответствие между троичным числом и двоичным его представлением отражено в рис.2
Р2 |
Р1 |
Троичное число |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
2 |
1 |
1 |
Невозможное состояние |
рис.2 Таблица истинности
Как видно из рис.2, одно из состояний является неиспользуемым. Это приводит к недостаточно эффективному использованию памяти, но позволяет вести контроль правильности данных. Кроме того, основная масса данных программы представлена в двоичной форме (или в форме, кратной двум), и такое увеличение кода из-за избыточности кодирования не принципиально.