Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.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 |