русс | укр

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

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

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

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


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

Алгебраическое представление двоичных чисел в ЭВМ


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


Знак числа обычно кодируется двоичной цифрой: знак "+" кодируется 0, знак "-" кодируется 1. Если двоичные числа —45 и 31 в форме с запятой, фиксированной после нулевого разряда, сложить, то получим неверный результат 1100.1100 или в десятичной системе счисления -45+31 =-76 (10101101+00011111=11001100). Чтобы арифметические операции над знаковыми числами в ЭВМ можно было бы производить точно также, как и с беззнаковыми переменными, отрицательные числа представляются в дополнительном коде.

Следует упомянуть, что aльтepнaтивными являютcя представления в прямом и обратном коде.

Прямой код числа N – = -(abs(N). Такой код и был использован в рассмотренном выше примере. Недостатки такого представления:

- операцию вычитания нельзя заменить операцией сложения;

- представление числа 0 неоднозначно.

Обратный код числа получается инверсией двоичных разрядов. Через а обозначим двоичный разряд числа, а через а* - инверсию двоичного разряда (если а=1, то а*=0 и если а=0, то а*=1). Правило получения обратного кода:

если N>0, то = 0aaaaaaa;

если N<0, то =1 а* а* а* а* а* а* а* а*,

если N=0, то имеет место неоднозначность или .

Например, число 11 в обратном коде представляется как 0.1011, а число с=-7 будет представлено как 1.1000. Сложим эти числа:

0.1011+1.1000= 0.0011+ единица переноса из старшего разряда.

Если единицу пересоса из старшего разряда игнорировать, то результат сложения неверный: 11-7=3. Чтобы получить верный результат, необходимо единицу переноса добавить к младшему разряду результата: 0.1011+1.1000=0.0011+0.0001=0.0100 (11-7=4).

Следовательно,

- представление 0 в обратном коде неоднозначно;

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



В дополнительном коде положительное число представляется также, как в прямом и обратном кодах, т.е. при N>0, = 0aaaaaaa.

Чтобы получить дополнительный код отрицательного числа:

1) надо взять его положительную форму (взять прямой код положительного числа);

2) обратить каждый бит (иначе говоря, заменить в представлении числа 0 на 1 и 1 на 0);

3) добавить к полученному числу 1 младшего разряда. Например, представим в дополнительном коде число-32:

1) положительная форма числа –0.00100000;

2) обратим биты –1.11011111;

3) добавим 1 —1.11011111 +0.00000001

получим 1.11100000 - дополнительный код числа.

Достоинства такого кода заключается в том, что нуль однозначно представляется кодом 0,0000....0 и, кроме того, операцию вычитания можно заменить операцией сложения.

Недостаток такого представления - при использовании дополнительного кода отрицательное число становится трудно расшифровать. Однако дело облегчается тем, что положительную форму отрицательного числа в дополнительном коде можно получить аналогично вышеописанной методике, выполнив пункты 2 и 3. Проверим на рассмотренном выше примере:

2) обращаем биты 000011111;

3) добавляем 1 + 0.00000001 получим 0.00100000.

2.Выполнение арифметических операций в компьютере

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

Таблицы для двоичной арифметики будут следующими:



<== предыдущая лекция | следующая лекция ==>
Основные положения принципа программного управления | При использовании дополнительного кода единица переноса из знакового разряда игнорируется.


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


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

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

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


 


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

 
 

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

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