
296 Гл. 4. Двоичные комбинационные и переключательные схемы
при
этом
прямом
коде
обычному порядку натуральных чисел
соответствует лексикографический (без пробелов) порядок
двоичных слов. Начальные О в двоичных словах опускаются; в
частности, натуральное число 0 кодируется пустым двоичным
словом.
Представление целых чисел
требует
дополнительного бита
для указания знака числа. Подробнее об этом и о представлении
вещественных (машинных) чисел говорится в приложении А.
Очевидное двоичное кодирование сорта
bool,
соотв.
Boolean,
с помощью соответствия (1) из
2.1.3.6
и
4.1.1.2
подразумевается
всюду
в дальнейшем.
Двоичное кодирование сорта
char,
соотв.
char,
можно вы-
полнять
различными способами, исходя из различных техниче-
ских точек зрения; см.
1.4.2.
В последующем мы всегда пред-
полагаем, что кодировка осуществляется в соответствии с семи-
разрядным кодом ISO в редакции ASCII (рис. 30). Для полу-
чения
двоичной кодировки объектов сорта
string,
соотв.
string,
можно в таком
случае
брать конкатенацию кодирующих двоич-
ных слов отдельных знаков; стыки слов однозначно опреде-
ляются.
Иначе
обстоит дело при двоичном кодировании размеченных
деревьев, т. е. объектов сорта
lisp,
соотв.
lisp.
Здесь не должна
быть потеряна содержащаяся в скобках информация о струк-
туре
размеченного дерева (см.
2.1.3.5).
Простая возможность
состоит в том, чтобы включить в код два специальных знака
<и>
и с их помощью двоично закодировать, скажем,
(А'(В"С)) как А(ВС),
((А"
В')'С')
как (АВ)С).
4.2.1.
Двоичное
сравнение
Операция
сравнения .=., соотв. .Ф., имеет важное практи-
ческое значение для
всех
сортов. Для однозначно обратимых
(двоичных) кодировок — а только такие и рассматриваются в
дальнейшем—два объекта равны
тогда
и только
тогда,
когда
кодирующие их (двоичные) слова поразрядно совпадают.
Например,
для
char,
соотв.
char,
это приводит при кодиро-
вании
с помощью семиразрядного кода ISO к задаче построе-
ния
комбинационной схемы для сравнения
двух
семиразрядных
слов
а
1
а
ъ
аъа^ъа
2
а\
и
Ь
7
ЬфффъЬ
2
Ь
{
.
Переключательная функ-
ция
имеет вид
(а
{
•- bi) Л (а
2
«-»• Ь
2
) Л (а
3
<-* Ь
3
) Л (а
4
*-* Ь
4
) Л (а
5
*-*• h) Л
(а
6
<
-> Ь
6
) Л (а
7
«->
b-j).