русс | укр

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

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

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

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


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

Двоичная арифметика.


Дата добавления: 2015-09-15; просмотров: 1079; Нарушение авторских прав


 

Сложение, вычитание или умножение двоичных чисел выполняются так же, как и в арифметике десятичных чи­сел. Микропроцессоры владеют командами сложения и вычитания двоичных чисел, выполняют команды умноже­ния и деления.

На рис. 3.1, а представлены простые правила двоичного сложения. Два первых (слева) правила очевидны, третье показывает, что 1+1 ==10, т.е. наиболее значимая 1 пере­носится в ближайший старший разряд. Четвертое правило, наконец, показывает, что 1+1+1 ==11. В этом случае пер­вое, второе слагаемые и запоминаемое в результате сложения в младшем разряде число—все 1. Результатом явля­ется сумма—1 с переносом 1.

Сложим двоичные числа 0011 1011 и 0010 1010 (опера­ция показана на рис. 3.1, б). Для большей ясности действия с десятичными эквивалентами обрабатываемых чисел пока­заны на рисунке справа. Суммой двух чисел 0011 1011 и 0010 1010 будет 0110 01012.

На рис. 3.2,а приведены правила двоичного вычитания. Первые три аналогичны десятичному вычитанию. Послед­нее требует заема из более значимого предшествующего разряда (в этом случае вес 2). Уменьшаемым является дво­ичное число 10, вычитаемым 1, разностью— 1.

 

Вычтем двоичное число 0011 1001 из 0101 0101. Этот пример приведен на рис. 3.2,б. Разряды весов 1, 2 и 4 этого двоичного вычитания просты для выполнения и относят­ся к первым трем правилам на рис. 5.2,а. В колонке веса 8 имеет место вычитание 1 из О. Тогда 1 занимается из колонки веса 16. Единица вычитается из 102, что дает разность 1 согласно четвертому правилу на рис. 3.2, а. После этого заема в колонке веса 16 имеет место вычитание 1 из нового вычитаемого 0. Согласно четвертому правилу 1 дол­жна быть занята из следующей, более значимой позиции (колонка веса 32), но в колонке 32 имеем 0; поэтому колон­ка 32 должна сделать заем из колонки веса 64, что и вы­полнено. Окончательно колонка 16 делает заем из колонки 32, уменьшаемым в колонке 16 становится 102, вычитаемым 1, разностью 1.



В колонке 32 имеем 1—1==0, в колонке 64 — 0—0==0, в колонке 128 — 0—0==0. Таким образом, рис. 5.2, б иллюстрирует операцию вычитания ОО11 lOOl2 из 0101 OlOl2 (справа эта задача решена в десятичной за­писи).

Приведем правила десятичного умножения:

Два первых правила не требуют никаких пояснений. В двух следующих множителем является 1: когда множи­телем является 1 при двоичном умножении, множимое ста­новится результатом и представляет собой произведение. Когда множитель 0, произведение всегда 0.

Выполним умножение 1101 на 101. Как и в случае умно­жения десятичных чисел, множимое сначала умножается на число, стоящее в младшем разряде (в рассматриваемом случае—бит В колонке веса 1).

Поскольку бит множителя в разряде веса 1 является 1, множимое копируется и составляет первое частичное про­изведение. Вторым битом множителя является 0, тогда вто­рое частичное произведение есть 0000 (заметим, что оно сдвинуто на одну позицию влево). Битом разряда веса 4 множителя является 1, тогда для получения третьего час­тичного произведения снова следует копирование множи­мого (заметим, что копирование завершается новым сдвигом на одну позицию влево). После этого выполняем сложение трех частичных произведений, что дает результат 100 00012. Полученный результат 11012Х1012=100 00012 соответствует произведению десятичных чисел 1310X510==6510.

 

3.3 Дополнительный код.

 

Сама ЭВМ обрабатывает информацию обычно в двоич­ном коде. Однако если нужно использовать числа со зна­ком, используется специальный дополнительный код, что упрощает аппаратные средства ЭВМ.

На рис. 3.3,а приведено обычное изображение регистра МП или ячейки памяти вне МП.

Такой регистр представля­ют пространством из 8 бит данных. Позиции бит пронуме­рованы от 7 до 0, а веса двоичных позиций указаны в осно­вании регистра, бит 7 имеет вес 128, бит 6—64 и т.д.

На рис. 3.3, б и 3.3,в показаны типовые структуры 8-разряд­ных регистров для размещения чисел со знаком. В обоих случаях бит 7 является знаковым. Он указывает, является ли число положительным (+) или отрицательным (—). При 0 в знаковом бите число положительно, при 1 — отри­цательно.

Если, как показано на рис. 3.3, б, число положительно, оставшиеся ячейки памяти (6—0) содержат двоичное 7-разрядное число. Например, если регистр на рис. 3.3,б со­держит 0100 0001, это соответствует числу +6510 (64+1, знаковый бит положителен). Если в него записано 0111 1111, содержимым будет +12710 (знаковый бит положителен: +64+32+16+8+4+2+1), что является наибольшим положительным числом: которое может содержать 7-разрядный регистр.

Если, как это показано на рис. 3.3, в, регистр содержит то же число со знаком, но отрицательное, он будет содержать дополнительный код этого числа. В табл. 3.2 приведена запись в дополнительном коде положительных и отрица­тельных чисел. Заметим, что все положительные числа име­ют 0 в старшем бите, остальные биты составляют двоичное число. Все отрицательные числа имеют 1 в старшем разря­де. Рассмотрим строку +0 в табл. 3.2: запись в дополни­тельном коде +0 будет 0000 0000. В ближайшей нижней строке видим, что запись в дополнительном коде—1 следу­ющая: 1111 1111.

Рассмотрим пошаговое перемещение в обратном направлении от 0000 0000 до 1111 1111. Какой будет запись в дополнительном коде числа —9? Рассмотрим этапы преобразования. Они следующие:

Полученный результат является дополнительным кодом положительного десятичного числа. В приведенном приме­ре дополнительным кодом числа 9 является 1111 0111. За­метим, что знаковый бит —1, это означает, что рассматри­ваемое число (1111 0111) отрицательно.

Каким будет десятичный эквивалент числа 1111 0000, записанного в форме дополнительного кода? Процедура преобразований в этом случае следующая:

Таким образом, формирование обратного кода и добав­ление 1 являются теми же процедурами, которые мы про­водили при преобразовании двоичного числа в дополнитель­ный код. Однако следует отметить, что, хотя мы получили двоичное число 0001 0000== 1610, исходная запись дополни­тельного кода 11110000=-16, т.е. имеем отрицательное число, поскольку старший бит в дополнительном коде яв­ляется 1.



<== предыдущая лекция | следующая лекция ==>
Двоично-десятичный код, двоично-десятичные числа. | Арифметика в дополнительном коде.


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


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

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

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


 


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

 
 

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

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