71014

Арифметические основы ЭВМ

Лабораторная работа

Информатика, кибернетика и программирование

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

Русский

2014-10-31

173 KB

0 чел.

ЛАБОРАТОРНАЯ РАБОТА № 6

Арифметические основы ЭВМ

ЦЕЛЬ РАБОТЫ :   Изучение систем счисления и операций над числами, представленными в различных системах счисления.

1. Общие сведения. Системы счисления.

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

Непозиционной называется такая система счисления, в которой величина цифры (символ) не зависит от позиции (места), занимаемой ею в записи числа.  Примером непозиционной системы счисления является римская система, которую использовали древние римляне, египтяне, вавилоняне и др. народы. Алфавит этой системы состоит из специальных символов, обозначающих следующие величин

I=1; V=5; X=10; L=50;C=100; D=500; M=1000

Например, XXX = 30; число состоит из трех цифр X, каждая из которых независимо от их места в числе равна 10.

Для изображения чисел, отличных от 1, 5, 10, 50, 100, 500 и 1000, приходится комбинировать определенное количество римских цифр, помня при этом, что меньшая по величине цифра, стоящая справа от большей складывается с большей (например, СХХХIII=133) a стоящая слева - вычитается из большей (например, IX = 10 - 1 = 9).

Арифметические действия над римскими числами выполнять очень трудно, поэтому эта система в настоящее время используется в редких случаях.

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

Например, десятичное число 111,11. В зависимости от позиции, занимаемой цифрой 1, ее вес различен в записи числа.

1 ая - 1 сотня,

2 ая - 1 десяток,

3 ья - 1 единица,

4 ая - десятая доля единицы,

5 ая - сотая доля единицы.

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

1.1. Десятичная система счисления

Для записи любого числа используются десять цифр от 0 до 9. Общее свойство позиционных систем: вес (величина) цифры при каждом переходе влево от запятой увеличивается во столько раз, чему равно основание системы. При переходе же цифры на один разряд от запятой вправо вес цифры уменьшается во столько раз, чему равно основание системы.

Следовательно, любое десятичное число является компактной записью.

Например: 327,48 это

или

1.2. Восьмеричная  система счисления

В восьмеричной системе счисления используется восемь цифр от 0 до 7

Восьмеричная система используется как вспомогательная при подготовке задач к решению. Она удобна тем, что дает сокращенную запись двоичного числа.

1.3. Двоичная система счисления

В этой системе используются только две цифры: 0 и 1. В целой части двоичного числа в самом младшем разряде записывается единица и т.д.

Пример: перевести десятичную дробь в двоичную систему:

  1.  3125  

×2   0.312510 = 0.01012

0 6250

×2  

1 2500

×2  

  1.  5000

×2

1 0000

Перевод неправильных дробей осуществляется по приведенным правилам отдельно для целой и дробной части.

Двоичная система используется в ЭВМ всех размеров (от суперЭВМ до микро-ЭВМ), т.к. именно в двоичной форме внутри машины запоминается, перемещается из одного устройства в другое и перерабатывается вся информация: исходные данные и команды программы. Обусловлено это в основном следующим. Чтобы представить в машине цифру, нужно иметь такое устройство (электрическую схему), которое имело бы ровно такое же количество различимых устойчивых состояний равновесия, которое равно основанию системы. Так, чтобы иметь возможность зафиксировать любую десятичную цифру, такое устройство должно иметь 10 состояний. Реализовать технически такое устройство очень сложно. Для фиксирования восьмеричных цифр, устройство должно обладать восемью устойчивыми состояниями (задача технической реализации упрощается), а в случае двоичных цифр - только двумя (что реализовать технически очень просто).

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

Один разряд (цифра) двоичного числа называется битом. Бит является минимальной единицей информации и может содержать либо 0, либо 1. Совокупность трех двоичных цифр, выражающая одну восьмеричную цифру, называют двоичной триадой.

 0   1   2   3      45       67 - восьмеричная

000 001 010 011 100 101 110 111 -двоичная

1.4. Шестнадцатиричная система счисления

В современных ЭВМ в качестве основной единицы информации принята группа из восьми двоичных разрядов (битов), так называемый байт и кратные ему единицы: полбайта, 2 байта, 4 байта и т.д. В связи с этим получила широкое применение шестнадцатиричная система счисления.

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

Таблица 1

Система счисления

Шестнадцатиричная

Десятичная

Восьмеричная

Двоичная

0

0

0

0

1

1

1

1

2

2

2

10

3

3

3

11

4

4

4

100

5

5

5

101

6

6

6

110

7

7

7

111

8

8

10

1000

9

9

11

1001

А

10

12

1010

В

11

13

1011

C

12

14

1100

D

13

15

1101

E

14

16

1110

F

15

17

1111

10

16

20

10000

11

17

21

10001

12

18

22

10010

Порядковое число на единицу большее, чем последнее, имеющее собственный символ F, записывается так: берется самая младшая значащая цифра и сдвигается на один разряд влево (факт сдвига обозначается приписыванием нуля справа). Далее   в младшем разряде перебираются подряд все цифры, вплоть до самой старшей (IF), после чего записывается 20 и т.д.

2. Перевод из одной системы счисления в другую неправильных дробей

Осуществляется раздельно для целой и дробной части.

3.Арифметические действия с двоичными числами

3.1. Сложение двоичных чисел

Сложение двоичных чисел осуществляется следующим образом:

0 + 0 = 0 1 + 0 = 1

0 + 1 = 1 1 + 1 = 10 (два)

Пример. Найти сумму двух чисел 1101 и 101

(1 - единица переноса в старший разряд)

  1.  (13)
  2.  (5)

         10010   (18)

Проверка: 1*24 +0*23 + 0*22 + 1 * 21 + 0*20 = 1*16 +0*8 +0*4 + 1*2 +0*1 = 18

3.2. Вычитание двоичных чисел

Вычитание двоичных чисел осуществляется следующим образом:

0 - 0 = 0 1 - 1 = 0

1 - 0 = 0 10 - 1 = 1

Пример: Вычесть из 10010 число 101

10010   (18)

  1.  (5)

01101   (13)

Проверка: Аналогична предыдущему примеру

3.3. Умножение двоичных чисел

Умножение двоичных чисел выполняется следующим образом:

0 * 0 = 0 1 * 0 = 0

0 * 1 = 0 1 * 1 = 1

Пример. Перемножить два двоичных числа

  1.  (9)
  2.  (5)

1001

       10010

     101101    (45)

Проверка. Аналогична предыдущему примеру.

3.4. Деление двоичных чисел

Правила деления аналогичны делению в двоичной системе.

Пример. Найти частное от деления числа 101 101 на число 1001.

 101101  (45)   1001   (9)

 1001                101     (5)

     1001

     1001

     0000

Проверка. Аналогична предыдущему примеру

4. Формы представления чисел в машинах

В ЭВМ применяются две формы представления чисел: с фиксированной  и  плавающей запятой. Соответственно и ЭВМ подразделяются на машины с фиксированной и плавающей запятой.

4.1. Машины с фиксированной запятой

При конструировании таких машин заранее устанавливают, какое количество разрядов отводится для целой части числа, а какое для дробной. Обычно, запятая фиксируется перед первым (старшим) цифровым разрядом, и машина оперирует с числами меньше единицы. При решении задач на такой машине число масштабируют так, чтобы в процессе вычислений не получился результат, превышающий единицу или равный единице, т.к. в этом случае наступает переполнение разрядной сетки машины и результат искажается. При выборе количества разрядов в машине ориентируются на требуемую точность вычислений. Для точности вычислений в n-десятичных знаков в машине выбирают 4n-двоичных разрядов. Например, точность вычислений до 10 десятичных знаков обеспечивается разрядной сеткой в 40 двоичных разрядов.

Разрядная сетка машины выглядит следующим образом.

знак числа

2-1

2-2

2-3

… …. …

2-n

рис.1.а)

1

1

0

1

… … …

1

рис.1.б)

знак числа

2-1

2-2

2-3

2n

знак порядка

21

22

2p

рис.1.в)

0

1

1

0

1

1

1

0

1

рис.1.г)

Рис.1.а) - каждый разряд числа записывается в строго определенном месте. Знак числа в машине также представляется двоичными цифрами: (плюс - «0», минус - «1»).

Например. Число - 0,101…1 запишется в разрядной сетке так, как показано на Рис.1.б)

Недостатками машин с фиксированной запятой являются:

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

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

4.2. Машины с плавающей запятой

В машинах с плавающей запятой числа представляются в виде двух групп: мантиссы и порядка числа (так называемая нормальная форма представления). Допустим, имеется десятичное число 312,446. Это число можно записать различными способами: 3,12446 * 102; 0,0312446 * 104 и т.д. Вообще любое число может быть записано так

N = m * qp,     где

m - дробная часть числа (мантисса);

q - основание системы счисления;

p - целое число, называемое порядком числа N (порядок    указывает положение запятой в числе).

При различных порядках положение запятой будет различным (по этой причине машины рассматриваемого типа и стали называть машинами с «плавающей запятой»).

Чтобы  устранить  неоднозначность  представления  числа применяют нормализованную форму представления чисел. Число считается нормализованным, если его мантисса представляет правильную дробь. В двоичной системе это условие выражается как 0,1 ≤ m < 1.

Например. Числа 0,101*210; 0,1001*2-10 являются нормализованными.

Разрядная сетка машины с плавающей запятой представлена на рис.1.в).

Например. На рис.1.г) приводится число +0,110…1*2, записанное в разрядной сетке.

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

Большим преимуществом машин с плавающей запятой является больший диапазон представляемых чисел без масштабирования по сравнению с машинами с фиксированной запятой. Количество двоичных разрядов для мантиссы обычно составляет 35 - 45, а для порядка - 6 - 8 разрядов.

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

5. Изображение отрицательных чисел в прямом и дополнительном кодах

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

5.1. Прямой код

Число Х в прямом коде изображается [X] пр. Прямой код числа Х получается по следующему правилу:

Если Х = + 0,Х1*Х2*Х3…, то [Х]пр = 0,Х1*Х2*Х3…

Если Х =  – 0,Х1*Х2*Х3…, то [Х]пр = 1,Х1*Х2*Х3…

Прямой код двоичного числа совпадает по изображению с записью самого числа, но в разряде знака ставится 0, если число положительное; и 1, если число отрицательное.

Пример. Пусть имеется число – 0,1011,, которое требуется перевести в прямой код

Х = – 0,1011 и [Х]пр = 1,1011

5.2. Обратный код

Число Х в обратном коде обозначается [Х]обр. При Х >0  [Х]обр = [Х]пр = Х

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

В общем виде отрицательное число Х = – 0,Х1*Х2*Х3… будет изображаться в обратном коде как [Х]обр = 1,Х1*Х2*Х3… (черта означает обращение разряда, т.е. инвертирование).

Пример. Перевести число – 0,10001 в обратный код.

Х = –0,10001 и [Х]обр = 1,01110

5.3. Дополнительный код

Дополнительный код числа Х обозначается [Х]доп. При Х > О |Х]доп = [Х]пр = Х

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

Для отрицательного числа Х= – 0,Х1*Х2*Х3… дополнительный код будет [Х]доп = 1,Х1*Х2*Х3… + 0,0…1

Пример. Перевести число – 0,10111 в дополнительный код.

Х = – 0,10111 и [Х]доп = 1,01001

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

 – 11111

   10011

    01100

 +         1    (дополнение единицы)

    01101    (превращается в дополнение до двух)

Так и поступают в машинах, т.к. это дает возможность получать дополнение до 1 в каждом двоичном разряде простым обращением разрядов. Действительно, если поменять нули на единицы и единицы на нули в нашем числе 10011, то получим тот же результат, что и при вычитании его из единиц: 10011-01100. Из всего сказанного вытекает, что

[Х]доп = [Х]обр +0,0...1

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

Пример. Пусть из 5 требуется вычесть 2.

Обычный метод.

а) в десятичной системе:   б) в двоичной системе:

5      101  (5)

2      010  (2)

  1.  011  (3)

В дополнительном коде.

а) в десятичной системе:

Возьмем дополнение отрицательного числа (вычитаемого) до десяти (основание десятичной системы) и сложим его с уменьшаемым:

10      5

  2      8

 8 (дополнение числа 2 до 10)           13

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

б) в двоичной системе:

Возьмем дополнение вычитаемого до двух (основание двоичной системы) и сложим его с уменьшаемым:

 1000         101

010      110

   110 (дополнительный код числа 010)  1011

Единица переноса отбрасывается и остается результат

0112 = 310

 В обратном коде.

а) в десятичной системе:

Возьмем дополнение вычитаемого до девяти (основание минус единица) и сложим его с уменьшаемым:

9      5

2      7

7 (дополнение числа 2 до 9)           12

                 1

      3

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

б) в двоичной системе:

Возьмем дополнение вычитаемого до единицы (основание два минус единица) сложим его с уменьшаемым:

111      101

010      101

101 (обратный код числа 010)           1010

          1

      011

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

Из рассмотренного следует:

1. Как дополнительный, так и обратный коды позволяют заменить операцию вычитания сложением.

2. При сложении чисел в дополнительном коде возникающая единица переноса отбрасывается, а при сложении в обратном коде эта единица прибавляется к младшему разряду суммы кодов.

6. Сложение чисел в машинах

Сложение чисел с учетом их знаков на машине представляет собой последовательность следующих действий:

1. Преобразование прямого кода исходных чисел в обратный (дополнительный).

2. Поразрядное сложение кодов

3. Преобразование результата в прямой код при посылке в другие устройства машины.

6.1 Сложение чисел в машинах с фиксированной запятой.

6.1.1. Сложение в обратом коде

Обратные коды чисел складываются поразрядно, причем знаковые разряды складываются как разряды мантисс. Если в результате сложения кодов в знаковом разряде возникает единица переноса, она прибавляется к младшему разряду суммы кодов (эта операция называется циклическим переносом). При обратном коде дополнение числа берется до единицы.

При сложении обратных кодов могут встретиться следующие четыре случая:

1. Х>0, У>0, X+У>0

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

2. Х >0, У< О, X+У<0

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

Ручной счет: Сложение в обратном коде на машине:

Х= 0,001001   [X]обр=0,001001

У= –0,110001   [У]обр=1,001110

Х+У= –0,101000   [Х+У]обр=1,010111

Результат получился в обратном коде, т.к. сумма отрицательна. Переведем ее в прямой код:

[1,010111]обр → [1,101000]пр → –0,101000

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

3. Х > 0; У < 0; Х + У > 0

Ручной счет:   Сложение на машине:

Х=   0,110001   [X]обр=0,110001

У= –0,001001   [У]обр=1,110110

Х+У=0,101000   [Х+У]обр=10,100111

                1  

    [Х+У]обр=0,101000=[Х+У]пр

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

4.  Х < 0;   У < 0;  Х + У < 0

Ручной счет:   Сложение на машине:

Х= –0,110001   [X]обр=1,001110

У= –0,001001   [У]обр=1,110110

Х+У= –0,111010   [Х+У]обр=11,000100

                1  

    [Х+У]обр=1,000101

Результат получился в обратном коде. Переведем его в прямой код.

[1,000101]обр → [1,111010]пр → –0,111010

Что совпадает с ручным счетом.

6.1.2. Модифицированный обратный код.

При неправильно подобранном масштабе результат сложения может оказаться больше единицы.

Например: Х=0,101011

 У=0,110100

 Х+У=1,011111  [1, →(-)]= –0,……

Произошло переполнение разрядной сетки (сумма превысила единицу). Машина может воспринять результат как отрицательный.

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

6.1.3. Запись чисел в модифицированном коде.

а) для положительного числа:

Х=0,Х1 Х2 Х3… [Х]мобр = 00,Х1 Х2 Х3…

б) для отрицательного числа:

Х= –0,Х1 Х2 Х3… [Х]мобр = 11,Х1 Х2 Х3…

Комбинация знаковых разрядов 01, или 10, будет служить признаком переполнения разрядной сетки.

Тот же пример в модифицированном коде :

 Х=00,101011

 У=00,110100

 Х+У=01,011111

В случае переполнения машина останавливается.

Сложение чисел в модифицированном обратном коде ничем не отличается от сложения в обычном обратном коде.

6.1.4. Сложение чисел в дополнительном коде

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

Пример: Даны два числа: Х=0,101001 и У= –0,001101.

Сложить их в дополнительном коде.

 [Х]доп=0,101001

 [У]доп=1,110011

 [Х+У]доп=10,011100=00,011100

Первую единицу ( 1 ) отбрасываем.

6.1.5. Модифицированный дополнительный код.

Как   и   в   модифицированном   обратном   коде   в модифицированном   дополнительном   предусматриваются   два знаковых разряда :

а) для положительного числа:

Х=0,Х1 Х2 Х3… [Х]мобр = 00,Х1 Х2 Х3…

б) для отрицательного числа:

Х= –0,Х1 Х2 Х3… [Х]мобр = 11,Х1 Х2 Х3…

Решим последний пример в модифицированном дополнительном коде:

 [Х]доп=00,101001

 [У]доп=11,110011

 [Х+У]доп=100,011100=00,011100

Первую единицу ( 1 ) отбрасываем.

Получаем результат с двумя знаковыми разрядами.

6.2. Сложение чисел в машиннах с плавающей запятой

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

Мантиссы складываются в одном из модифицированных кодов.    Если    после    сложения    результат    оказался ненормализованным, то его нормализуют, изменяя соответственно и порядок.

Пример: Сложить два числа: Х=+0,100100·2100 и У=–0,100101·2110

Проведем вычисления в модифицированном обратном коде.

1. Уравниваем порядки чисел :

Х 0 100100 0 100 (до уравнивания порядков)

X 0 001001 0 110 (после уравнивания порядков)

2. Переведем мантиссы чисел в модифицированный обратный код и сложим их :

Х  00 001001

У  11 011010

Х+У= 11 100011

3. Переведем результат в прямой код:

Х+У= 1 011100 0 110

4. Нормализуем его:

Х+У= 1 111000 0 101

Результат сложения равен: Х+У=-0,111000·2101

7. Умножение чисел в машинах

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

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

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

Числа в машинах умножаются в прямом коде по обычным правилам  арифметики  двоичных  чисел.  Знак  произведения определяется по сумме знаков сомножителей следующим образом:

0 + 0 = 0  0 + 1 = 1

0 + 1 = 1  1 + 1 = 0

В машинах используются два способа умножения.

Первый способ

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

Тот же пример умножения на машине.

Сумматор  Σ

00000000

Множитель

прибавить (множимое)

10010000

1

 Σ

10010000

сдвинуть

01001000

0

(не прибавлять)

сдвинуть

00100100

1

прибавить

10010000

 Σ

10110100

сдвинуть

01011010

0

(не прибавлять)

сдвинуть

00101101

 Σ

00101101

Результат совпадает с результатом ручного счета.

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

Второй способ

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

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

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

8. Деление чисел в машинах

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

Так же как и при ручном счете, разряды частного при делении чисел на машине определяются (начиная со старшего) путем последовательного вычитания делителя из остатка, полученного от предыдущего вычитания. После каждого вычитания  остаток, находящийся в сумматоре, сдвигается влево по отношению к делителю. Знак частного, как и при умножении, определяется по сумме знаков делимого и делителя.

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

Ручной способ

Пример:  Х= + 0,1001;  Y= + 0,1101

_ 10010          1101

  1.       0,1011

_  10100

   1101

  _ 1110

     1101

     1

Здесь после каждого вычитания делитель сдвигается вправо по отношению к делимому. Если остаток после вычитания получается положительный,  в  разряд  частного   записывается   1, если отрицательный, то 0. На практике обычно отрицательный остаток не записывается, просто делитель дополнительно сдвигается на один разряд вправо и вычитается из последнего положительного остатка.

Машинный способ

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

Пример. (тот же)

Решаем в дополнительном коде.

Процесс деления начинается со сдвига делимого влево на один разряд, после чего из него вычитается делитель, и т.д.

В процессе деления переполнение разрядной сетки блокируется.

001001

001101

сдвиг

010010

   1011

вычитание

110011

000101

сдвиг

001010

вычитание

110011

остаток отриц.

111101

восстановление

001101

001010

сдвиг

010100

вычитание

110011

000111

сдвиг

001110

вычитание

110011

000001

Результат: 001011

Весь процесс выполнения операции деления включает в себя три такта, последовательно повторяющихся до окончания операции:

1-й такт - сдвиг остатка влево

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

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

Пункты 5-8 выполняется по индивидуальным заданиям.

14


+

*

+

+

+

+

+

Пример: 0,1001

 0,0101

 01001

          00000

        01001

      00000

      0,00101101

*


 

А также другие работы, которые могут Вас заинтересовать

5648. Комплексно-механизированная линия по выработке хлеба российского 561.5 KB
  Сегодня хлебопекарное производство является одной из самых динамично развивающихся отраслей в России. Новые виды сырья и технологии, современное оборудование и передовые методы управления стали основой эффективной работы многих российских...
5649. Проведение внутреннего аудита. Курс лекций 834.5 KB
  Принципы управления качеством Комитет ISO по разработке стандартов качества выделил следующие восемь принципов, способствующих достижению целей в области качества. Ориентация на потребителя Понимание существующих потребностей потребителя Пониман...
5650. Электростатика и постоянный ток. Курс лекций 945.5 KB
  Предисловие Конспект лекций по разделам курса физики Электростатика и Постоянный ток представляет собой часть традиционного курса, читаемого на кафедре физики ОмГТУ для студентов всех форм обучения. Он состоит из следующих разделов: Глава...
5651. Методика проведения испытаний на одноосное растяжение 42.15 KB
  Методика проведения испытаний на одноосное растяжение Приборы и инструменты: Разрывная машина Штангенциркуль Порядок проведения лабораторной работы: Измерение образца: Выполняется измерение образца 3 раза и осредняется ...
5652. Методика проведения испытаний на сжатие 115.03 KB
  Методика проведения испытаний на сжатие Приборы и инструменты: Разрывная машина Штангенциркуль Порядок проведения лабораторной работы: Измерение образца: Выполняется измерение образца 3 раза и осредняется результат...
5653. Методика проведения испытаний на сдвиг 37.4 KB
  Методика проведения испытаний на сдвиг Приборы и инструменты: Разрывная машина Штангенциркуль Порядок проведения лабораторной работы: Измерение образцов: Образец 1 № h a b Количество слоев n 1 7.1 14.09 20.35 t1=3.95 12 2 7 12 19.8...
5654. Трехточечный изгиб 69.5 KB
  Приборы и инструменты: Разрывная машина Устройство реализующее схему трёхточечного изгиба Штангенциркуль с точностью 0.5 мм Персональный компьютер. Материал: Стеклопластик Порядок проведения лабораторной работы: Изме...
5655. Проведение испытаний на трехточечный изгиб 56.56 KB
  Проведение испытаний на трехточечный изгиб Приборы и инструменты: Разрывная машина Штангенциркуль Порядок проведения лабораторной работы: Измерение образца: среднее 19...
5656. Растяжение кольцевых образцов 61 KB
  Растяжение кольцевых образцов Цель работы: Определить модуль Юнгав окружном направлении и предел прочности. Провести статистическую обработку предела прочности по результатам испытаний всех групп. Приборы и оборудование: Испытательная ма...