русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Десятичная арифметика


Дата добавления: 2014-11-27; просмотров: 1108; Нарушение авторских прав


 

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

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

Когда сумма цифр равна десяти (1010(2)) двоично-десятичный сумматор должен формировать единицу переноса и тетраду 0000(2) результата Для этого применяются коды с избытком 6. При сложении разрядных цифр слагаемых к ним при помощи дополнительных цепей добавляется цифра 6 (0110(2)). В результате значение суммы увеличивается на 6 и при сумме равной десяти и более формируется единица переноса в старший разряд (тетраду) и правильная разрядная цифра суммы. Но в случае, когда разрядная сумма принимает значение меньше десяти, она оказывается смещенной в диапазон от 6 до 15, что не соответствует двоично-десятичной кодировке. Для получения правильной суммы делается коррекция.

При отсутствии переноса в старшую тетраду к полученной разрядной сумме добавляется число 1010(2) с блокировкой переноса в старшую тетраду. Это равносильно уменьшению числа на 6 (0110(2)), т.е. снятию смещения.

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

Все разряды вычитаемого инвертируются, что дает дополнение каждой цифры до 15. При этом получается обратный код двоично-десятичной цифры с избытком 6. Затем производится сложение вычитаемого с уменьшаемым с одновременным прибавлением к младшему разряду 1 (получение дополнительного кода из обратного).



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

Если из старшей тетрады нет переноса, то получен отрицательный результат, представленный в дополнительном коде. В этом случае, результат инвертируется и к нему прибавляется 1. Новый результат корректируется, при этом к тетрадам, из которых не возникал перенос, прибавляется число 1010(2).



<== предыдущая лекция | следующая лекция ==>
Арифметические операции с плавающей запятой | Алгебраическое сложение/вычитание чисел в прямом коде


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.