Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Тема1.4 Выполнение арифметических операций в ЭВМ




Тема1. 4 Выполнение арифметических операций в ЭВМ

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

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

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

Знак числа обычно кодируется двоичной цифрой: знак " +" кодируется 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. Выполнение арифметических операций в компьютере

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

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...