Автор работы: Пользователь скрыл имя, 24 Марта 2011 в 17:14, курсовая работа
Чтобы перевести целое число в новую СС, его необходимо последовательно делить на основание новой СС до тех пор, пока не получится частное, у которого целая часть равна 0. Число в новой СС записывают из остатков от последовательного деления, причем последний остаток будет старшей цифрой нового числа.
Задание 1. Перевод чисел из одной позиционной системы в другую……………………….…3
1.Перевод чисел из десятичной системы счисления в двоичную…………………....3
2.Изображение чисел в форме с фиксированной запятой (ФЗ).…….………………..5
3.Изображение чисел в форме с плавающей запятой (ПЗ)…………………..……….6
Задание 2. Сложение двоичных чисел…………………………………………………....….…..7
2.1 Сложение чисел в форме с ФЗ в обратном коде (ОК)………………………………7
2.2 Сложение чисел в форме с ФЗ в дополнительном коде (ДК)………………………8
2.3 Сложение чисел в форме с ФЗ в модифицированном коде………………...………8
2.4 Сложение чисел в форме с ПЗ………………………………………………….….…9
Задание 3. Умножение двоичных чисел………………………………………………………..11
3.1 Умножение чисел с ФЗ в ПК, используя первый способ умножения…………....11
3.2 Умножение чисел с ФЗ в ДК, используя второй способ умножения………….....13
3.3 Умножение чисел с ФЗ в ДК, используя третий способ умножения……...……...15
3.4 Умножение чисел с ПЗ, используя четвертый способ умножения……..……...…16
Задание 4. Деление двоичных чисел………………………………………………..…………..19
4.1 Деление чисел с ФЗ в ПК первым способом, применяя алгоритм с восстановлением остатков (ВО) и ОК при вычитании………………………………………………………………………………..……….19
4.2 Деление чисел с ФЗ в ПК вторым способом, применяя алгоритм без ВО и ДК
при вычитании………………………………………………………….…………….………….21
4.3 Деление чисел с ФЗ в ДК вторым способом, применяя алгоритм с автоматической коррекцией…………………………………………………………………………………..……23
4.4 Деление чисел с ПЗ первым способом…………………………………...…………24
Задание 5. Сложение двоично-десятичных чисел……………………………………………..27
5.1 Сложение двоично-десятичных чисел в коде 8-4-2-1………………………..……27
5.2 Сложение двоично-десятичных чисел в коде с избытком три………………..….28
5.3 Сложение двоично-десятичных чисел в коде 2-4-2-1………………………..……30
5.4 Сложение двоично-десятичных чисел в коде 3а+2………………………..………31
Задание 6. Умножение двоично-десятичных чисел…………………………………......…….32
6.1 Умножение старорусским методом удвоения – деления пополам……...………..32
6.2 Умножение методом десятично-двоичного разложения множителя………….....34
Список литературы………………………………………………………………………...…….
Масштаб произведения:
М = 212
Ответ:
1, 010100 011111пк
= -101 000 1111 12 = 131110
Проверка:
2310 * (-57)10
= 131110
II способ - умножение с младших разрядов множителя со сдвигом множимого влево.
Устройства, которые хранят операнды, регистры, имеют следующую разрядность:
Первоначально
множимое помещается в младшие разряды
регистра, а затем в каждом такте
сдвигается на один разряд влево.
Умножение чисел в дополнительном коде с автоматической коррекцией
Этот алгоритм разработан Бутом и является универсальным для умножения чисел в ДК. Сомножители участвуют в операции со знаковыми разрядами, которые рассматриваются как цифровые разряды числа. Результат получается сразу в дополнительном коде со знаком.
В процессе умножения анализируются две смежные цифры множителя: та, на которую выполняется умножение в данном такте – m1, и соседняя младшая цифра – m2. В двоичном множителе этой паре соответствуют четыре возможных набора – «00», «01», «10», «11», каждый из которых требует выполнения следующих действий:
В цикле умножения в каждом такте выполняются соответствующие сдвиги на один разряд. При этом могут использоваться все четыре способа умножения с некоторыми особенностями:
Это объясняется тем, что в этих тактах реализуется умножение не на цифровой, а на знаковый разряд числа.
Кроме
того, при выполнении алгоритма умножения
с автоматической коррекцией следует
помнить о правилах
сдвига отрицательных
чисел в ДК: при сдвиге влево освобождающиеся
младшие разряды заполняются нулями, при
сдвиге вправо освобождающиеся старшие
разряды заполняются единицами, т.е. реализуется
арифметический сдвиг числа.
C = -2310 = -101112
D = 5710 = 1110012
C пк = 1,010111
D пк = 0,111001
С дк = 1,101001 М = 26
D
дк = 0,111001 - множитель
Множитель | Сумма ЧП | Примечания | |
0,1110010 0,0111001 |
1,111111 101001 1,111111 010010 |
0,000000 000000
0,000000 010111 0,000000 010111 |
Вычитание Сдвиги |
0,0011100 0,0001110 |
1,111110 100100 1,111101 001000 |
0,000000 010111
1,111111 010010 1,111111 101001 |
Сложение Сдвиги Сдвиги |
1,111111 101001
0,000010 111000 |
Вычитание | ||
0,0000111 | 1,111010 010000 | 0,000010 100001 | Сдвиги |
0,0000011
0,0000001 |
1,110100 100000
1,101001 000000 |
Сдвиги
Сдвиги | |
0,000000 |
1,010010 000000 |
0,000010 100001
1,101001 000000 1,101011 100001 |
Сложение Сдвиги |
Ответ:
С*Dдк = -101011 1000012
С*Dпк = -010100 0111112
Проверка:
(-23)10*5710=(-1311)10
III способ - умножение со старших разрядов множителя со сдвигом суммы частичных произведений влево.
Устройства, которые хранят операнды, регистры, имеют следующую разрядность:
Суммирование множимого следует выполнять в младшие n разрядов регистра суммы частичных произведений.
Особенность
III способа умножения состоит в том, что
в последнем такте не
следует выполнять сдвиг в регистре
сумм частичных произведений.
Алгоритм умножения двоичных чисел в ДК с простой коррекцией:
1. определить знак произведения путем сложения по модулю два знаковых разрядов сомножителей.
2. перемножить модули сомножителей, представленных в ДК, одним из четырех способов – получить псевдопроизведение.
3. если хотя бы один из сомножителей отрицателен, выполнить коррекцию по следующим правилам:
4. Присвоить
модулю произведения знак из п.1 данного
алгоритма.
C = -2310 = -101112
D = -5710 = -1110012
C пк = 1,010111
D
пк = 1,111001 М = 26
С дк = 1,101001
D дк = 1,000111
С дк = 0,101001 – модуль множимого
D дк = 0,000111 – модуль множителя
Знак
произведения: 1 + 1 = 0
Множитель
n |
Сумма ЧП
2n |
Примечания |
,000111
,001110 ,011100 ,111000 |
,000000 000000
,000000 000000 ,000000 000000 ,000000 101001 ,000000 101001 |
Сдвиг
Сдвиг Сдвиг Сложение Сдвиг |
,110000 | ,000001 010010
,000000 101001 ,000001 111011 |
Сложение Сдвиг |
,100000 |
,000011 110110
,000000 101001 ,000100 011111 |
Сложение |
Псевдопроизведение
= 0, 000100 011111
Коррекция (складываем модули операндов):
+0, 000100 011111
0, 010111
+0, 011011 011111
0, 111001
1, 010100 011111
Ответ:
(C*D)пк =101000111112 = 131110
Проверка:
(-23)10*(-57)10
= 131110
IV способ - умножение со старших разрядов множителя со сдвигом множимого вправо.
Устройства, которые хранят операнды, регистры, имеют следующую разрядность:
Первоначально множимое помещается в старшие разряды регистра, а затем в каждом такте сдвигается на один разряд вправо.
Особенность
IV способа умножения состоит в том,
что перед началом цикла умножения следует
множимое сдвинуть на один разряд вправо.
Умножение чисел в форме с плавающей запятой
Когда сомножители заданы в форме с ПЗ, то их произведение определяется следующим образом:
Т.е. мантисса произведения mс равна произведению мантисс сомножителей, а порядок рс – сумме порядков сомножителей.
Это позволяет сформулировать алгоритм умножения чисел в форме с ПЗ:
1. определить знак произведения путем сложения по модулю два знаковых разрядов сомножителей;
2. перемножить модули мантисс сомножителей по правилам умножения дробных чисел с ФЗ;
3. определить порядок произведения алгебраическим сложением порядков сомножителей с использованием модифицированного дополнительного или обратного кодов;
4. нормализовать мантиссу результата и выполнить округление, если это необходимо.
Примечания:
1. Так
как мантиссы исходных
2. При
умножении чисел с ПЗ возможно
возникновении ПРС при сложении порядков,
поэтому необходимо предусматривать выявление
признаков ПРС в устройствах умножения
чисел с ПЗ.
C = -2310 = 101112
D = -5710 = 1110012
С
зн мантисса порядок
0 1 0 1 1 1 0 0
00101
D
зн мантисса порядок
0 1 1 1 0 0 1 0 00110
Знак
произведения: 0 + 0 = 0
Множитель
n
|
Сумма ЧП 2n | Примечания | |
0,101110 0,011100 |
0,011100 100000 0,001110 010000 |
0,000000 000000
0,011100 100000 0,011100 100000 |
Сложение Сдвиги |
0,111000 | 0,000111 001000 | Сдвиги | |
0,011100 100000
0,000111 001000 0,100011 101000 |
Сложение | ||
0,110000 | 0,000011 100100 | Сдвиги | |
0,100000 |
0,000001 110010 |
0,100011 101000
0,000011 100100 0,100111 001100 |
Сложение Сдвиги |
0,100111 001100
0,000001 110010 0,101000 111110 |
Сложение | ||
0,000000 | 0,000000 111001 | Сдвиги |