Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
Кодирование десятичных чисел и алфавитно-цифровой информации.Современные ЭВМ обрабатывают не только числовую, но и текстовую, другими словами – алфавитно-цифровую информацию, содержащую цифры, буквы, знаки препинания, математические и другие символы. Именно такой характер имеют экономическая, планово-производственная, учётная информация, а также тексты программ на алгоритмических языках и другая информация. Характер этой информации такой, что для её представления требуются слова переменной длины. Возможность ввода, обработки и вывода алфавитно-цифровой информации важна и для решения чисто математических задач, так как позволяет оформлять результаты вычислений в удобной форме – в виде таблиц с нужными заголовками и пояснениями. Совокупность всех символов, используемых в вычислительной системе, представляет собой её алфавит. Символу соответствует машинная единица информации слог. Так называют группу двоичных разрядов, служащую для представления символа в машине (двоичный код символа). Если группа включает k разрядов, то с её помощью можно кодировать 2k символов. Наибольшее распространение получило представление алфавитно-цифровой информации с помощью 8-разрядных слогов, называемых байтами. С помощью байта можно кодировать 256 различных символов. Для представления алфавитно-цифровой информации в ЭВМ используются различные стандарты двоичных кодов обмена информацией. Так в ЕС ЭВМ использовались восьмибитные коды для обмена и обработки информации КОИ-8, ДКОИ, в вычислительных системах IBM 360 и 370 восьмибитный код EBCDIC (Extended Binary Coded Decimal Interchange Code) – расширенный двоично-кодированный десятичный код для обмена информацией. Каждый из переменных стандартов позволяет кодировать до 256 различных символов. В мини ЭВМ, микро ЭВМ и персональных ЭВМ используются коды обмена информацией, ядром которых является семибитный код ASCII (American National Standard Code for Information Interchange) – Американский национальный стандартный код для обмена информацией. Этот код позволяет кодировать 128 различных символов включающие прописные и строчные буквы латинского алфавита. Добавление восьмого разряда к коду ASCII позволяет кодировать национальные алфавиты и символы псевдографики. ASCII код символа соответствует нулевому значению этого дополнительного разряда. Например, в коде EBCDIC букве А соответствует код (С1)16, B – (C2)16, S – (E2)16. В ASCII коде латинские буквы от A до Z последовательными двоичными кодами от (41)16 до (5А)16. Для представления текстовой информации используются строки символов. Строки символов изображаются в ЭВМ полем переменной длины. Так в ЕС ЭВМ длина поля может изменяться от 1 до 256 байт. В систему команд ЭВМ вводятся специальные команды для обработки строк символов. В ЭВМ, поддерживающих десятичную арифметику, десятичные числа представляются либо в распакованном (зонном) формате, либо в упакованном формате. При представлении чисел в распакованном формате каждая цифра записывается в виде байта, значение которого определяется применяемым кодом обмена информации. Так в коде EBCDIC цифры 0,1,2,…,9 изображаются байтами (F0)16, (F1)16, (F2)16,…, (F9)16. Старшие четыре разряда заполняются единицами: (1111)2=(F)16. Они образуют зонную часть представления, поэтому распакованный формат называют зонным. Младшие четыре разряда образуют двоичное значение цифры в BCD – формате с весами 8421: 0à0000, 1à0001, 2à0010, 3à0011, 4à0100, 5à0101, 6à0110, 7à0111, 8à1000, 9à1001/ Для эффективного использования памяти, уменьшения длин программ и времени решения задач десятичные данные необходимо представлять последовательностями из любого числа цифр – полями переменной длины, которые могут содержать 1,2,… цифр. Так в ЕС ЭВМ десятичные числа представляются полями переменной длины от 1 до 16 байтов. Пример 1.10. Изображения чисел в зонном формате в коде EBCDIC: 1) Число 457 в данном формате в поле, длинной три байта, имеет вид: 2) Число – 5678 в зонном формате в поле, длиной четыре байта, имеет вид: Как видно из примеров в зонной части младшей цифры записывается знак числа: С ( или F) для знака «+», и D для знака «-». Зонное представление десятичных данных неэкономично, так как в каждом байте размещается только одна цифра, хотя может уместится две. Поэтому для выполнения арифметических операций употребляется другая форма, которая называется упакованной. В упакованной форме в каждом байте размещается по две цифры. Код знака заносится в младшую тетраду младшего байта поля. Таким образом, максимальное число разрядов десятичного числа равно 31 (16*2-1=31). Пример 1.11. Число 457 в упакованной форме занимает поле длиной два байта: Число – 5678 в упакованном формате занимает 3 байта: При использовании ASCII кода каждая цифра в распакованном формате представляется байтами, старшая тетрада которых имеет значение (0011)2=(3)16: 0à(30)16, 1à(31)16, 2à(32)16, 3à(33)16, 4à(34)16, 5à(35)16, 6à(36)16, 7à(37)16, 8à(38)16, 9à(39)16.
Логические значения.
Переменные, принимающие одно из двух значений «ложь»: (FALSE) или «истина» (TRUE),- называются булевыми (логическими) переменными. Значения «ложь» и «истина» принято кодировать цифрами 0 и 1 соответственно. Операции над логическими переменными как объектами определены в языках программирования. В этом случае под их значения отводится группа битов (байт или машинное слово). Наличие хотя бы одного единичного бита в группе определяет истинное значение, а все нули – ложное. Булевы переменные используются в программах как самостоятельные объекты достаточно редко. Чаще всего они являются элементами наборов булевых векторов и матриц. К тому же слова информации, представляющие команды и числа, а также поля переменной длины, представляющие строки символов и тексты, часто приходится обрабатывать с использованием логических (булевых) операций, по отношению к которым двоичные разряды слов и полей являются логическими значениями. Таким образом, логические значения 0 и 1 чаще всего участвуют в операциях в виде наборов слов или полей переменной длины, каждый разряд которых рассматривается, как значение булевой переменной. Информация, представляемая такими словами, трактуется как не числовая и в процессе выполнения логических операций все разряды слова обрабатываются одинаково, как отдельные логические значения, объединённые в один набор. Таким образом, при обработке логических значений логические операции распространяются на слова и поля переменной длины, исследуемые для представления булевых переменных, команд, чисел и строк символов.
Машинные коды.
Двоичные числа в ЭВМ представляются машинными кодами определённой разрядности. Предположим, что число разрядов слова равно m тогда двоичный код числа X в этой разрядности запишется следующим образом:
Здесь Xm-1 – знаковый разряд числа
Прямой код.
Прямой код числа X определяется следующим образом:
Из (1.16) следует, что ноль имеет два представления:
Пример 1.12. Представить в прямом коде двоичные числа (+1000010)2 и (-1000010)2:
Прямые коды чисел не используются при выполнении операций над числами. Это связано с тем, что обработка цифровых и знакового разрядов чисел осуществляется по различным алгоритмам. Выполнение операций сложения и вычитания требуются двух разных устройств: сумматора и вычитателя. В силу сказанного для выполнения арифметических операций сложения и вычитания используется дополнительный или обратный код числа.
Дополнительный код.
Дополнительный код числа X определяется следующим образом:
Пример 1.13. Представить в дополнительных кодах двоичные числа (+1000010)2 и (-1000010)2:
Таким образом, дополнительный код положительного числа совпадает с прямым кодом. Дополнительный код отрицательного числа образуется по следующему правилу: все младшие разряды числа до первой единицы включительно сохраняют своё значение, остальные инвертируются, а в знаковом разряде записывается единица. Ноль в дополнительном коде имеет единственное представление:
Как следует из (1.18) дополнительный код осуществляет Рис. 1.1 отображение отрицательных чисел на область положительных чисел (рис. 1.1)
Обратный код числа.
Обратный код числа X определяется следующим образом:
Пример 1.14. Представить в обратном коде двоичные числа и . а) [+1000010]обр=0 1000010. б) [-1000010]обр=28-1000010-1=10 0000000-1000010-1=1 0111101.
Таким образом, обратный код положительного числа совпадает с прямым кодом, а обратный код отрицательного числа образуется по следующему правилу: все цифровые разряды числа инвертируются, а в знаковом разряде записывается единица. Ноль в обратном коде имеет два представления:
Как следует из (1.19) обратный код, также как и дополнительный, осуществляет отображение отрицательных чисел на область положительных чисел (Рис. 1.2.). Рис. 1.2 На основании (1.19) можно установить связь между обратным и дополнительным кодом,
откуда можно получить другое правило образования дополнительного кода,
Это правило используется в ЭВМ при переходе к дополнительному коду числа. |
|||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-11 lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |