Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема_3.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
299.52 Кб
Скачать

2.4. Выполнение арифметических действий над нормализованными числами

Сложение и вычитание

При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков. В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу.

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

Пример 1.

Сложить двоичные нормализованные числа 0.10111*2–1 и 0.11011*210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:

Пример 2.

Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:

Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.

Умножение

При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются.

Пример 3.

Выполнить умножение двоичных нормализованных чисел:

(0.11101*2101)*(0.1001*211) = (0.11101*0.1001)*2(101+11) = 0.100000101*21000.

Деление

При делении двух нормализованных чисел из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае необходимости полученный результат нормализуется.

Пример 4.

Выполнить деление двоичных нормализованных чисел:

0.1111*2100 : 0.101*211 = (0.1111 : 0.101)*2(100-11) = 1.1*21 = 0.11*210.

Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства.

2.5. Системы кодирования текстовых данных

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

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

Для английского языка, захватившего де-факто нишу международного средства общения, противоречия уже сняты. Институт стандартизации США (ANSI ‑ American National Standard Institute) ввел в действие систему кодирования ASCII (American Standard Code for Information Interchange) ‑ стандартный код информационного обмена США. В системе ASCII закреплены две таблицы кодирования — базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255

Первые 32 кода базовой таблицы, начиная с нулевого, отданы производителям аппаратных средств ‑ компьютеров и печатающих устройств. В этой области размещаются управляющие коды, которым не соответствуют никакие символы языков, и, соответственно, эти коды, не выводятся ни на экран, ни на устройства печати. Они позволяют управлять тем, как производится вывод данных.

С кода 32 по 127 размещены коды символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов.

Аналогичные системы кодирования текстовых данных разработаны и в других странах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (код обмена информацией, семизначный). Однако поддержка производителей оборудования и программ вывела американский код ASCII на уровень международного стандарта, и национальным системам кодирования пришлось отступить во вторую, расширенную часть системы кодирования, определяющую значения кодов со 128 по 255. Отсутствие единого стандарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устаревших.

Так, например, кодировка символов русского языка, известная как кодировка Windows-1251, была введена компанией Microsoft. Учитывая широкое распространение операционных систем и других продуктов этой компании в России, она глубоко закрепилась и нашла широкое распространение. Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.

Другая распространенная кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) ‑ ее происхождение относится ко временам действия Совета Экономической Взаимопомощи государств Восточной Европы. Сегодня кодировка КОИ-8 еще имеет распространение в компьютерных сетях на территории России и в российском секторе Интернета.

Международный стандарт, в котором предусмотрена кодировка символов русского алфавита, носит название кодировки ISO (International Standard Organization ‑ Международный институт стандартизации). На практике данная кодировка используется редко.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]