Автор работы: Пользователь скрыл имя, 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
Список литературы………………………………………………………………………...…….
Порядок произведения:
00,0110
00,0101
00,1011 = 1110
Выполняем
нормализацию :
0,101000 111110 (М=212)
= 0,010100011111 (М=212)
зн мантисса порядок
0 10100011111 1011
Ответ:
(C*D)пк =101000111112 = 131110
Проверка:
2310*5710
= 131110
IV.
Деление двоичных чисел
Процесс деления состоит из последовательности операций вычитания и сдвигов, при этом операция вычитания заменяется операцией сложения остатка с делителем, представленным в обратном или дополнительном кодах.
При делении чисел в прямом коде знак частного определяется сложением по модулю два знаковых разрядов делимого и делителя, и далее в процессе деления участвуют модули операндов.
Так
как операция деления обратна
умножению и начинается всегда со
старших разрядов, то существуют два
способа деления – обращенный III и IV способы
умножения. Причем нередко для реализации
умножения и деления целесообразно использовать
одно и то же оборудование: регистр множимого
- как регистр делителя, регистр множителя
– как регистр частного, а регистр частных
сумм – как регистр делимого, в который
заносят остатки от деления.
Алгоритм деления с восстановлением остатков:
а) если остаток положительный, то произошло ПРС, операцию следует прекратить до смены масштабов операндов;
б) если остаток отрицательный, то в частное занести «0» (этот разряд по окончании деления станет знаковым разрядом частного) и восстановить остаток, прибавив к нему делитель.
а) если > 0, то в частное заносится «1»;
б) если <0, то в частное заносится «0».
C = 2310 = 101112
D = -5710 = -1110012
Спк = 0,010111- делимое М = 26
Dпк = 1,111001
Dок = 1,000110
- делитель
Делимое (Остатки)
|
Примечания | |
0,000000 |
0,010111
1,000110 1,011101 0,111001 10,010110 1 0,010111 |
Вычитание Остаток, < 0 Восст. Остатка Сдвиги |
0,000000 |
0,101110
1,000110 1,110100 0,111001 10,101101 1 0,101110 |
Вычитание Остаток, < 0 Восст. Остатка Сдвиги |
0,000001 |
1,011100
1,000110 10,100010 1 0,100011 1,000110 |
Вычитание Остаток > 0 Сдвиги |
0,000011
0,000110
0,001100
0,011001
0,011001(1) |
1,000110
1,000110 10,001100 1 0,001101 0,011010 0,011010 1,000110 1,100000 0,111001 10,011001 1 0,011010 0,110100 1,000110 1,111010 0,111001 10,110011 1 0,110100 1,101000 1,101000 1,000110 10,101111 1 0,110000 1,100000 1,100000 1,000110 10,100110 1 0,100111 |
Вычитание Остаток > 0 Сдвиги Вычитание Остаток <0 Восст. Остатка Сдвиги Вычитание Остаток < 0 Восст. Остатка Сдвиги Вычитание Остаток > 0 Сдвиги Вычитание Остаток > 0 |
Округление:
0,011001
1
0,011010
(C/D)пк = 0,011010
C/D = 0,0110102 = 0,4062510
Точный результат: C/D = -23/-57 = - 0,40351
Абсолютная погрешность: - 0,40625 + 0,40351 = - 0,00274
Относительная
погрешность: (-0,00274)/(-0,40351) = 0,0068 , т.е. 0,7%
Алгоритм деления без восстановления остатков:
а) если положителен, то произошло ПРС, операцию следует прекратить для смены масштаба операндов;
б) если остаток отрицателен, то в частное занести «0» и продолжить операцию деления.
C = -2310 = -10111 2 - делимое
D = -5710 = -111001 2 - делитель
Спк = 1,010111
Dпк = 1,111001
Сдк = 1,101001 М = 26
Dдк = 1,000111
1
1 = 0
Частное
(Влево)
|
Делимое (остатки) | Примечания | |
0,000000 0,000000 0,000001 0,000011 0,000110 0,001100 0,011001 0,011001 (1) |
0,111001 000000 0,011100 100000 0,001110 010000 0,000111 001000 0,000011 100100 0,000001 110010 0,000000 111001 0,000000 011100 |
0,010111 000000
1,000111 000000 |
Вычитание Остаток < 0 Сдвиги Сложение Остаток < 0 Сдвиги Сложение Остаток > 0 Сдвиги Вычитание Остаток > 0 Сдвиги Вычитание Остаток < 0 Сдвиги Сложение Остаток < 0 Сдвиги Сложение Остаток > 0 Сдвиги Вычитание Остаток < 0 |
1,011110 000000 0,011100 100000 | |||
1,111010 100000 0,001110 010000 | |||
10,001000
110000
0,001000 110000 1,111000 111000 | |||
10,000001
101000
0,000001 101000 1,111100 011100 | |||
1,111110 000100 0,000001 110010 | |||
1,111111 110110
0,000000 111001 10,000000 101111 0,000000 101111 | |||
1,111111 100100
10,000000 010011 0,000000 010011 |
Округление:
0,011001
1
0,011010
(C/D)пк = 0,011010
C/D = 0,011010(2) = 0,4062510
Точный результат: C/D = -23/-57 = - 0,40351
Абсолютная погрешность: - 0,40625 + 0,40351 = - 0,00274
Относительная
погрешность: ( (-0,00274)/(-0,40351) )= 0,0068 , т.е. 0,7%
Алгоритм деления в дополнительном коде (с автоматической коррекцией).
Операнды участвуют в операции деления со знаковыми разрядами. Знак частного определяется в процессе деления.
C = -2310 = -101112 - делитель
D = 5710 = 1110012 - делимое
Спк = 1,010111
Dпк = 0,111001
Сдк = 1,101001 М = 26
Dдк = 0,000111
1
0 = 1
Частное
(Влево)
|
Делимое (остатки) | Комментарий | ||
0,000001 | 1,101001 000000 | 0,111001 000000
1,101001 000000 |
Срав. Знаков
Сложение ПРС! | |
10,100010 000000 | ||||
Увеличиваем порядок делимого до 7 | ||||
0,000001 | 1,101001 000000 | 0,011100 100000
1,101001 000000 10,000101 100000 |
Срав. Знаков
Сложение ПРС! | |
Увеличиваем порядок делимого до 8 | ||||
0,000001 0,000010 0,000101 0,001011 0,010110 0,101100 1,011000 1,011000 (0) |
1,101001
000000 1,110100 100000 1,111010 010000 1,111101 001000 1,111110 100100 1,111111 010010 1,111111 101001 1,111111 110100 |
0,001110 010000
1,101001 000000 |
Срав. Знаков
Сложение Сдвиги Вычитание Сдвиги Сложение Сдвиги Вычитание Сдвиги Вычитание Сдвиги Сложение Сдвиги Сложение Сдвиги Сложение | |
1,110111 010000 0,001011 100000 | ||||
10,000010
110000 1,111010 010000 | ||||
1,111101 000000 0,000010 111000 | ||||
1,111111 111000 0,000001 011100 | ||||
10,000001
010100 1,111111 010010 | ||||
10,000000
100110 1,111111 101001 | ||||
10,000000
001111 1,111111 110100 | ||||
10,000000 000011 |
(D/C)дк = 1,011000
(D/C)пк
= 1,101000
Порядок частного:
0,0111
1,1011
10,0010=0,0010 = 210
D/C = 10,10002 = 2,5 M = 22
Точный результат: 57/(-23) = -2,4783
Абсолютная погрешность: |- 2,5+ 2,4783| = 0,0217
Относительная погрешность: (0,0217)/(2,4783) = 0,0088 , т.е. 0,9%
Деление чисел в форме с плавающей запятой
Когда операнды заданы в форме с ПЗ, то их частное определяется следующим образом:
Т.е. мантисса частного mС есть частное мантисс делимого и делителя, а порядок рС – сумма порядков операндов.
Это позволяет сформулировать алгоритм деления чисел в форме с ПЗ:
В отличие от деления чисел с ФЗ при выполнении п.2 алгоритма, получение положительного остатка при первом вычитании не означает ПРС. При обработке чисел с ПЗ такая ситуация требует денормализации мантиссы делимого сдвигом её на 1 разряд вправо с одновременным увеличением порядка делимого на «1».
Однако
ситуация ПРС при делении чисел
с ПЗ возможна при вычитании порядков
операндов, если они были разных знаков.
C = 2310 = 101112 - делитель
D = 5710 = 1110012 - делимое
Операнды в разрядной сетке условной машины
C = 2310 = 1011102
D = 5710 = 1110012 – делимое
Cпк= 0,0101112
М = 26
C | 0 | 101110 | 0 | 0101 |
D | 0 | 111001 | 0 | 0110 |