Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторные работы / 2.10.10 РГР информатика ИСТ.docx
Скачиваний:
71
Добавлен:
28.01.2014
Размер:
67.33 Кб
Скачать

Арифметические операции над числами

Арифметические операции над числами включают: сложение, вычитание, умножение и деление. Умножение и деление являются производными от сложения и вычитания. Рассмотрим данные операции для всех рассмотренных выше систем счисления.

Десятичная система счисления. Каждый из нас знает правила сложения, вычитания, умножения и деления в десятичной системе счисления. Вспомним эти правила, которые также распространяются на все системы счисления:

  • В случае, когда наибольший цифровой символ данной системы счисления возрастает на единицу в данном разряде числа, то в этом разряде образуется ноль и происходит перенос единицы в следующий более высокий разряд.

  • Если в данном разряде числа происходит вычитание числа большего чем исходное, то происходит заем у старшего разряда, а сам старший разряд уменьшается на единицу.

Двоичная система счисления. В двоичной арифметике используют следующие правила.

Сложение

Вычитание

Умножение

0+0=0

0-0=0

00=0

0+1=1

1-0=1

01=0

1+0=1

1-1=0

10=0

1+1=10

10-1=1

11=1

Сложение двух многоразрядных чисел начинается с младшего разряда, производится поразрядно с учетом единиц переноса из предыдущих разрядов.

Пример № 11.

+

1010

101

1111

При вычитании в каком-либо разряде единицы из нуля, необходимо «занимать» недостающее количество в соседних старших разрядах. Вычитание начинается с младших разрядов.

Пример № 12.

-

1010

101

101

Умножение двух многоразрядных чисел в двоичной системе счисления выполняется по правилам десятичной системы, и результат представлен в двоичном виде.

Пример № 13.

Деление двух многоразрядных чисел представляет собой многократное вычитание делителя из делимого.

Пример № 14.

1010

101

-

101

10

0

Восьмеричная и шестнадцатеричная система счисления. В данных системах счисления сложение, вычитание, умножение и деление выполняется аналогично вычислениям в двоичной системе счисления.

Кодирование чисел

Обычно используется три формы записи целых чисел со знаком: прямой код, обратный код, дополнительный код.

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

Например: число А=1001112 положительно, значит прямой код равен:

АПК=0,1001112

Отрицательные числа в прямом, обратном и дополнительных кодах имеют разное изображение:

  • прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части помещается двоичный код его абсолютной величины.

Например: число А=1001112 отрицательно, значит прямой код для отрицательного числа равен:

АПК=1,1001112

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

Свойства обратного кода:

  • ноль в обратном коде имеет двоякое значение, если ноль положительное число, значит 0,0000, а если ноль отрицательное число, то 1,11111. Двойственное представление нуля явилось причиной того, что все числа в современных ЭВМ представляются не в обратном, а дополнительном коде.

Например: число А=1001112 отрицательно, тогда получим:

АОБ=1,0110002

  • дополнительный код получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду.

Например: число А=1001112 отрицательно, тогда дополнительный код:

АДК=1001112=1,011000+1=1,0110012

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

Пример № 15. Выполнить следующие действия (С+D), (С-D),

(-С+D), (-С-D), применяя прямой, обратный и дополнительный коды.

С=2210=101102 D=3410=1000102

  1. (С+D). Поскольку числа C и D положительны, то во всех кодах они будут равны. Рассмотрим сложение двух положительных чисел в прямом коде. Так как число С имеет 5 разрядов, то добавим еще один разряд слева, чтобы число разрядов в обоих числах стало одинаковым.

СПК=0,0101102 DПК=0,1000102

0,010110

0,100010

0,111000

+

(С+D)ПК=0,1110002=32+16+8=5610

Вывод: при сложении двух положительных чисел в любом коде результат равен положительному числу в прямом коде.

  1. (С-D) и (-С+D). В данном случае только одно из чисел является отрицательным. Рассмотрим оба случая:

а) С<D, С>0, D<0. Рассмотрим случай, когда число D больше С, и оно отрицательно, для этого переведем число D в дополнительный код, а число С оставим без изменения, так как оно положительно. Получим:

СПК=0,0101102 DДК=1,0111012+1=1,0111102

(С-D)ДК=1,1101002

Вывод: при сложении таких двух чисел результат отрицательный в обратном коде, чтобы получить нормальный вид результата необходимо инвертировать само число кроме знакового разряда.

Ответ: (С-D)=1,1101002=1,0010112= - 1110

Теперь рассмотрим случай, когда при сложении этих чисел используется обратный код, тогда:

СПК=0,0101102 DДК=1,0111012

Сложим эти два числа:

1,011101

0,010110

1,110011

1 – машинная единица

1,110100 → 1,001011

+

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

Ответ: (С-D)пК=1,1101002=1,0010112= - 1110

б) С<D, С<0, D>0. Рассмотрим аналогичный случай. Только теперь число D положительно, а С – отрицательно, поэтому переведем его в дополнительный код.

СДК=1,1010012+1=1,1010102 DПК=0,1000102

+

1,101010

0,100010

10,001100

1

0,001101

Вывод: при сложении таких двух чисел результат получается положительным в прямом коде. Из-за переполнения знакового разряда к младшему разряду прибавляем 1 и получаем окончательный ответ.

Ответ: (С-D)ПК=0,0010112= 1110

Рассмотрим сложение этих двух чисел, но с применением обратного кода.

СОК=1,1010012 DПК=0,1000102

Сложим эти числа:

+

Единица, которая получается при переполнении знакового разряда отбрасывается.

Вывод: результат сложения этих чисел получается положительным и в прямом коде.

(-C+D)=0,0010112= 1110

  1. (-С-D). В данном случае можно поступить двумя способами вынести знак «-» за скобки и сложить два положительных числа в прямом коде. Другой способ – это оба числа перевести в дополнительные коды, а затем их сложить.

СДК=1,1010102 DДК=1,0111102

1,101010

1,011110

10,001000

10,110111

1

0,111000

+

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

(-С-D)ОК=0,1110002=32+16+8=5610

Рассмотрим случай для этих двух чисел в обратном коде

СОК=1,1010012 DОК=1,0111012

Сложим и получим

Вывод: результат данного вычисления получается отрицательным в обратном коде.

(-C-D)=1,0001112= 1,1110002= - 5610

Соседние файлы в папке лабораторные работы