Тема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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|