Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 205

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ную информацию в привычной для человека десятичной системе и получать результаты обработки информации в этой же системе.

Для этой цели необходимы специальные коды, поз­ воляющие представлять десятичные цифры посредством букв двоичного алфавита (0 и 1). Такие коды называ­ ются двоично-десятичными.

Был предложен ряд систем кодирования. Выбор той или иной из них зависит от особенностей использования десятичной информации в вычислительных устройствах Если десятичные числа используются только при вводе и выводе информации, а вычисления производятся в двоичной системе, то наиболее важными требования­ ми к системе кодирования десятичных чисел являются наглядность представления десятичных чисел и просто­ та перевода чисел из десятичной системы в двоичную

иобратно.

Вмашинах, предназначенных для обработки эконо­ мической информации, часто сами операции над числа­

ми выполняются в десятичной системе счисления. В этом случае способ кодирования десятичных чисел приходит­ ся выбирать с учетом удобства выполнения над ними арифметических операций.

Наконец, если определяющим моментом является достоверность подготовки десятичных данных и переда­ чи их в машину, то для выбора способа кодирования существенны простота контроля правильности поступа­ ющих данных и возможность исправления возникающих при передаче ошибок.

Система кодирования десятичных знаков, как впро­ чем и любых других знаков \ посредством букв дво­ ичного алфавита должна удовлетворять следующим ус­ ловиям: а) в кодовом слове легко должна определяться граница между кодами рядом записанных знаков; б) ка­ ждому знаку должна соответствовать одна единствен­ ная комбинация букв двоичного алфавита.

Проще

всего удовлетворяется первое требование, ес­

ли коды

всех символов имеют одинаковую дли­

ну (число разрядов). Тогда, если известно местоположе­ ние начала слова, легко определяется граница между соседними кодами знаков. Чтобы можно было предста-

1 В следующем параграфе рассматривается кодирование алфа­ витно-цифровой (текстовой) информации.

78


вить двоичными кодами k различных символов, длина кода согласно (1-4) должна быть равна минимальному целому положительному числу, удовлетворяющему не­ равенству

S> log2k.

Если &=10, то s = 4.

Применяемые двоично-десятичные коды делятся на взвешенные и невзвешенные. У первых каждому из че­ тырех разрядов двоичного набора а 4азагаі, представля­ ющего десятичную цифру, приписывается определенный вес <7і, так что значение десятичной цифры

с = а 4<?4 + a3q3 + a2q3 + ayqx.

В табл. 2-3 приведены некоторые взвешенные коды.

 

 

Т а б л и ц а 2-3

Десятичные

 

Взвешенные коды

 

 

 

 

цифры

8421

2421

7421

 

0

0000

0000

0000

1

0001

0001

0001

2

0010

0010

0010

3

ООП

ООП

ООП

4

0100

0100

0100

5

0101

1011

0101

6

о н о

1100

о н о

7

0111

1101

1000

8

1000

1110

1001

9

1001

1111

1010

Код 8421. Наибольшее распространение в вычисли­ тельной технике нашел код 8421, в котором каждая циф­ ра десятичного числа заменяется соответствующим че­ тырехразрядным двоичным числом. Код этот удобен для выполнения машиной (а не вручную) преобразований из десятичной системы в двоичную и обратно. Этот код аддитивен, т. е. сумма представлений двух цифр есть код их суммы. Тем не менее этот код мало удобен для реа­ лизации арифметических операций над десятичными чи­ слами. Это связано с трудностями обнаружения при ис­ пользовании кода 8421 переноса в следующий десятич­ ный разряд и сложностью перехода к обратным и допол­ нительным кодам для десятичных чисел, облегчающим

79


выполнение алгебраического сложения. Это объясняет­ ся тем, что код 8421 не является самодополняющимся, т. е. инверсия его двоичных цифр не дает кода дополне­ ния десятичной цифры до 9.

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

Код 7421 отличается тем, что содержит всего 14 еди­ ниц, что может иметь значение, если необходимо эконо­ мить расход энергии, а ее потребление связано с хране­ нием и передачей 1. В этом коде цифру 7 можно было представить в виде 0111 и 1000. Выбрано последнее как имеющее меньше единиц.

В табл. 2-4 приведены некоторые невзвешенные коды.

 

 

Т а б л и ц а 2-4

Десятичные

Код с из­

Код 2 из 5

цифры

бытком 3

0

ООП

11 000

1

0100

00 011

2

0101

00

101

3

ОНО

00 п о

4

0111

01 001

5

1000

01 010

6

1001

01

100

7

1010

10 001

8

1011

10010

9

1100

10 100

Код с избытком 3 удобен для выполнения арифмети­ ческих операций над десятичными числами, так как яв­ ляется самодополняющимся. Кроме того, легко опреде­ ляется перенос, так как сумма двух слагаемых, каждое из которых берется с избытком 3, получится (первона­ чально) с избытком 6, что исключает лишние кодовые

комбинации. Для получения правильного кода

суммы

из полученного результата вычитается 3.

 

Для

ряда применений существенно, что код нуля со­

держит

единицы и легко отличить наличие нуля

от от­

80


сутствия какой-либо цифры. Код с избытком 3 мало удобен для преобразования чисел из одной системы счисления в другую.

Код 2 из 5. Десятичные цифры представляются пятью разрядами. Эта избыточность используется для контроля «правильности передачи цифры. В изображении каждой цифры присутствуют две единицы. Любая оди­ ночная ошибка (ошибка в одном разряде) преобразует О в 1 или 1 в 0, в результате окажется больше или мень­ ше двух единиц, что укажет на ошибку. При одновре­ менном появлении двух ошибок возможны случаи, ког­ да их не удается обнаружить (если 0 в одном разряде превращается в 1, а в другом разряде 1 в 0).

Код 2 из 7 (двоично-пятеричный код). В этом коде десятичная цифра изображается семиразрядным двоич­ ным кодом, который делится на две группы — в одной два разряда, а в другой — пять. В каждой группе обяза­ тельно должна присутствовать одна и только одна еди­ ница (табл. 2-5).

 

 

Т а б л и ц а 2-5

Десятичные

Двоично-пятеричный код

 

 

цифры

50

43 210

 

0

01

00 001

1

01

00 010

2

01

00 100

3

01

01 000

4

01

10 000

5

10

00 001

6

10

00 010

7

10

00 100

8

10

01 000

9

10

10 000

Можно считать этот код взвешенным с весовыми ко­ эффициентами, указанными в табл. 2-5. Код позволяет определять любую одну ошибку и имеет некоторые удоб­ ства при реализации арифметических операций.

2-6. К О Д И Р О В А Н И Е А Л Ф А В И Т Н О -Ц И Ф Р О В О Й И Н Ф О Р М А Ц И И

Современные вычислительные машины обрабатыва­ ют не только числовую, но и текстовую, иначе говоря, алфавитно-цифровую информацию, содержащую цифры,

6—333

81


буквы, знаки препинания, математические и другие сим­ волы. Именно такой характер имеет экономическая, пла­ ново-производственная, учетная, бухгалтерская, стати­ стическая и другая информация, содержащая наимено­ вание предметов, фамилии людей и т. д. Характер этой информации таков, что для ее представления требуются слова переменной длины.

Возможность ввода, обработки и вывода алфавитноцифровой информации важна и для решения чисто ма­ тематических задач, так как позволяет оформлять ре­ зультаты вычислений в удобной форме — в виде таблиц с нужными заголовками и пояснениями.

Применение для записи алгоритмов и автоматиза­ ции программирования алгоритмических языков делает необходимым ввод в машину и вывод наряду с обще­ употребительными еще и некоторых специальных сим­ волов.

Символом называется графический знак, изображаю­ щий цифру, букву, знак препинания, математические и другие знаки. Совокупность всех символов, использу- '*тмых в вычислительной системе, представляет собой ее алфавит. Символу соответствует машинная единица ин­ формации слог. Так называют группу двоичных разря­ дов, служащую для представления символа в машине (двоичный код символа). Применяются различные ва­ рианты кодирования символов, использующие коды раз­

ной длины.

При выборе способа кодирования необходимо учи­ тывать объем алфавита символов и требования, связан­ ные с облегчением автоматической обработки данных, а также с более плотной «упаковкой» информации в за­ поминающих устройствах.

Деловая информация в среднем содержит почти вдвое больше цифр, чем букв. Поэтому наряду с общей системой кодирования алфавитно-цифровых символов (десятичные цифры, буквы и другие знаки) в машинах сохраняют также отдельную систему кодирования для десятичных цифровых данных, состоящих только из де­ сятичных цифр. Специальный признак указывает, какой из этих типов кодирования используется для данной группы кодов.

Необходимо, чтобы память машины эффективно ис­ пользовалась при размещении в ней как алфавитно-циф­ ровой, так и десятичной информации.

82

Еще недавно для представления символов широко применялся шестиразрядный слог (машины «Минск-22», ВНИИЭМ-3, американские машины IBM 1401, IBM 7090 и др.). Однако посредством такого слога можно пред­ ставить только 64 различных символа, что в настоящее время недостаточно для многих применений. Поскольку

для представления

деся­

 

 

 

 

 

 

 

 

тичных цифр достаточно

 

 

 

S pajpßâoâ

 

четырех разрядов, то при

 

 

 

а)

 

 

 

 

записи в шестиразрядные

 

 

 

 

 

 

 

слоги

десятичной инфор­

байт

 

бай*77 &

 

байт

 

мации по одной цифре в

 

 

 

 

 

 

слог память используется

Сим вол Ос/мбм

 

 

плохо,

так

как остаются

О

 

7 0

7

О

7

неиспользованными

два

Мнформаці/онні/е

сцм&0лі/

 

разряда в каждом

слоге.

 

В последние годы наи­

 

 

 

б)

 

 

 

большее распространение

Рис.

2-4.

Восьмиразрядный(б)слог.

получило

представление

алфавитно-цифровой ин­

(байт)

(а)

и размещение алфавит­

формации

посредством

но-цифровых

символов

 

восьмиразрядного слога (рис. 2-4), называемого байтом.

Байт

применяется

в машинах системы IBM 360, маши­

не «Урал-14», машинах Единой системы ЭВМ и др. При помощи восьмиразрядного слога можно кодировать 256 различных символов.

На рис. 2-5 представлено кодирование символов, при­ нятое для машин системы IBM 360. В этой системе упо­ требляются расширенный двоично-кодированный код EBCDIC (рис. 2-5, а) и американский стандартный код ASCII для обмена информации, расширенный до 8 раз­ рядов (ASCII-8) (рис. 2-5, б) '.

Алфавитно-цифровая информация представляется словами переменной длины, содержащими нужное число байтов — символов (рис. 2-4). Например, в системе IBM 360 и системе ЕС ЭВМ алфавитно-цифровое слово мо­ жет иметь длину от 1 до 256 байтов.

 

1 Приведенные на

рис. 2-5 коды применяются в системе IB M 360

для представления алфавитнох-к

-цифровой информации

внутри Ц В М .

Информация

на перфоленты

наносится в коде A S C II

без его рас­

ширения (игнорируется

разряд на

рис. 2 -5,6), на перфокарты —

в специальном

коде IB M для перфокарт (см. [Л . 21], стр. 11 и 762).

При

вводе и

выводе

производятся

соответствующие

преобразова­

ния

кодов

 

 

 

 

 

6*

83