|
Переполнение при выполнении операции сложения целых чисел со знаком в ЭВМ
Переполнением называется выход результата выполнения арифметической операции из допустимого диапазона представления чисел. В двоичной системе при выполнении операции сложения чисел со знаком переполнение может возникнуть в двух случаях: · если слагаемые положительны, а их сумма – отрицательна; · если слагаемые отрицательны, а их сумма – положительна. При сложении чисел с разным знаком переполнение возникнуть не может. Пример. n = 4. Диапазон представления от -8 до +7.
0111 (+7) + 0110 (+6) 1101 (-3). Правильный результат сложения - +13 выходит за допустимый диапазон представления чисел, и поэтому фиксируется арифметическое переполнение.
6. ПРИМЕР ВЫПОЛНЕНИЯ КОНТРОЛЬНОГО ЗАДАНИЯ
Выполнение задания рассмотрим на конкретном примере, предположив, что предпоследней цифре шифра соответствует число A1 = 90 (10), а последней – число A2 = 33 (10). Для выполнения задания необходимо выполнить следующую последовательность действий: 1. Cформировать число W в десятичной системе. W = 90,33 (10). 2. Для перевода числа W в другие системы необходимо воспользоваться отдельно правилами перевода целой и дробной части числа (число A1 – целое, а число A2 – дробное). Перевод в двоичную систему.
а) целой части б) дробной части 90 2 0,33 90 45 2 2 0 44 22 2 0,66 1 22 11 2 2 0 10 5 2 1,32 1 4 2 2 2 1 2 1 0,64 0 2 1,28 2 0,56 2 1,12 W =1011010,010101 (2). Проверим правильность перевода:
+ (10).
Перевод в восьмеричную систему.
а) целой части б) дробной части
90 8 0,33 88 11 8 8 2 8 1 2,64 3 8 5,12
W =132,25 (8). Проверим правильность перевода: (10). Перевод в шестнадцатеричную систему.
а) целой части б) дробной части
90 16 0,33 80 5 16 10 5,28 16 4,48
W =5A,54 (16). Проверим правильность перевода: (10).
Заметим, что дробная часть исходного числа и дробная часть, получаемая при переводе в десятичную систему из двоичной, восьмеричной и шестнадцатеричной систем отличается на 0,001875, что обусловлено заданной точностью перевода. Поскольку двоичная система связана с восьмеричной и шестнадцатеричной специальными соотношениями (8 = 23,16 = 24), то выполнив перевод из десятичной системы в двоичную, можно выполнить перевод в восьмеричную систему (разбивая двоичное число на триады) и в шестнадцатеричную систему (разбивая число на тетрады).
W = 0 0 1 0 1 1 0 1 0, 0 1 0 1 0 1 (2) 1 3 2, 2 5 (8) W = 0 1 0 1 1 0 1 0, 0 1 0 1 0 1 0 0 (2)
5 A, 5 4 (16). 3. Представим числа в дополнительном коде.
3.1 Для двоичной системы
A1 = 1011010 (2). + A1 = 0 | 1011010. - A1 = 1 | 0100101 (инвертируем разряды) + 1 (добавляем 1 к младшему разряду) 1 | 0100110.
Переведем целое число A2 в двоичную, восьмеричную и шестнадцатиричную системы счисления (также как мы переводили число A1). A2 = 33 (10) = 100001 (2) = 41 (8) = 21 (16). Так как число A2 меньше числа A1, а операции над числами выполняются в фиксированном формате, то в качестве базового выбираем формат, имеющий число разрядов, необходимое для представления числа A1, а в старшую часть числа A2 для выравнивания добавляем незначащие нули, если это необходимо. A2 = 0100001 (2). + A2 = 0 | 0100001. - A2 = 1 | 1011110 (инвертируем разряды) + 1 (добавляем 1 к младшему разряду) 1 | 1011111.
В этом примере для представления чисел в двоичной системе счисления требуется 8 двоичных разрядов, включая знаковый разряд, т.е. можно сказать, что используется формат байта. Следовательно, в восьмеричной системе для представления чисел потребуется три разряда, а в шестнадцатеричной – два.
3.2 Для восьмеричной системы:
A1 = 132 (8). + A1 = 132. - A1 = 645 (заменяем цифры на взаимно обратные) + 1 (добавляем 1 к младшему разряду) 646. A2 = 41 (8). + A2 = 041. - A2 = 736 (заменяем цифры на взаимно обратные) + 1 (добавляем 1 к младшему разряду) 737.
3.3 Для шестнадцатиричной системы:
A1 = 5A (16). +A1 = 5A. - A1 = A5 (заменяем цифры на взаимно обратные) + 1 (добавляем 1 к младшему разряду) A6.
A2 = 21 (16). + A2 = 21. - A2 = DE (заменяем цифры на взаимно обратные) + 1 (добавляем 1 к младшему разряду) DF.
4. Выполним операции сложения над числами в двоичной, восьмеричной и шестнадцатеричной системах:
4.1 В двоичной системе:
A1 + A2 = 0 | 1011010 -A1 – A2 = 1 | 0100110 + 0 | 0100001 1 | 1011111 0 | 1111011 (2) 1| 0000101 (2) A1 - A2 = 0 | 1011010 -A1 + A2 = 1 | 0100110 + 1 | 1011111 0 | 0100001 0 | 0111001 (2) 1| 1000111 (2).
4.2 В восьмеричной системе:
A1 + A2 = 132 -A1 – A2 = 646 + 041 737 173 (8) 605 (8)
A1 - A2 = 132 -A1 + A2 = 646 + 737 041 071 (8) 707 (8).
4.3 В шестнадцатеричной системе:
A1 + A2 = 5A -A1 – A2 = A6 + 21 DF 7B (16) 85 (16)
A1 - A2 = 5A -A1 + A2 = A6 + DF 21 3 9 (16) C7 (16).
Заметим, что так как A1 + A2 = - (-A1 - A2) и A1 - A2 = - (A2 – A1), то вместо четырех действий в каждой системе можно было выполнить только два, а остальные два результата получить, используя перевод в дополнительный код. Например, для системы с основанием 16 имеем:
A1 + A2 = 7B (16) -A1 – A2 = 84 + 1 85 (16).
Покажем, что для операции A1 – A2 действия во всех системах счисления приводят к одному и тому же результату, используя перевод в десятичную систему.
A1 – A2 = 90 – 33 = 57 (10). A1 – A2 = 0111001 (2) = 1 + 8 + 16 + 32 = 57 (10). A1 – A2 = 071 (8) = 1 + 56 = 57 (10). A1 – A2 = 039 (16) = 9 + 48 = 57 (10).
5. Проверим полученные результаты на наличие арифметического переполнения. Так как в нашем примере знаковые числа представляются в формате байта, то допустимый диапазон представления чисел в десятичной системе составляет от -128 до + 127. В рассмотренном примере при сложении чисел арифметического переполнения не возникает
7. ПРИМЕРНЫЙ ПЕРЕЧЕНЬ ЭКЗАМЕНАЦИОННЫХ ВОПРОСОВ
ОГЛАВЛЕНИЕ
ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|