Автор работы: Пользователь скрыл имя, 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
Список литературы………………………………………………………………………...…….
ПК
получается прибавлением избытка 3 к
коду 8-4-2-1.
Алгоритм сложения в коде с избытком 3
1. Проверить знаки слагаемых. Отрицательные преобразовать в ОК путем инвертирования тетрад.
2. Сложить двоично-десятичные числа по правилам двоичной арифметики.
3. Выполнить коррекцию результата, прибавив код 1101 к тетрадам суммы, из которых не сформировалась единица переноса и прибавив код 0011 к тетрадам суммы из которых сформировалась единица переноса. Единицу переноса между тетрадами при коррекции отбрасывать.
4. Проверить
знак результата. Отрицательный преобразовать
в ПК, инвертируя тетрады.
А = 356,31
В = - 723,54
А/=
0,35631
В/= - 0,72354
А2-10 = 0,0110.1000.1001.0110.0100
В2-10 = 1,1010.0101.0110.1000.0111
Вок = 1,0101.1010.1001.0111.1000
Сложение:
|
(А+В)8-4-2-1+3 = 1, 0110.1001.1010.0101.0110
Результат с учетом масштаба М=103
(А+В)= - 367,2310
Проверка:
356,3110+(-723,54)10= - 367,2310
Код 2-4-2-1
10СС | ПК | ОК |
0 | 0000 | 1111 |
1 | 0001 | 1110 |
2 | 0010 | 1101 |
3 | 0011 | 1100 |
4 | 0100 | 1011 |
5 | 1011 | 0100 |
6 | 1100 | 0011 |
7 | 1101 | 0010 |
8 | 1110 | 0001 |
9 | 1111 | 0000 |
Алгоритм сложения в коде 2-4-2-1.
1. Проверить знаки слагаемых. Отрицательные преобразовать в ОК, инвертируя тетрады.
2. Сложить двоично-десятичные числа по правилам двоичной арифметики.
3. Выполнить коррекцию суммы:
если каждая из исходных тетрад меньше 5, то
-
коррекция не нужна ,если
- если суммарная тетрада ³ 5, то необходима коррекция кодом +6 (0110).
- если одна из исходных тетрад <5, а другая – ³5, то коррекции не требуется.
- если каждая из исходных тетрад ³5, то
-
коррекция не нужна, если
- если тетрада суммы <5, то нужна коррекция кодом –6 (1010)
ИЛИ!
1. Корректируется тетрада суммы прибавлением кода 0110, если содержится 0 в 4-м разряде тетрад обоих слагаемых и комбинации 10 или 01 в 4-м и 3-м разрядах тетрады суммы и есть единица либо во 2-м, либо в 1-м разрядах тетрады суммы.
2. Корректируется тетрада суммы прибавлением кода 1010, если содержится 1 в 4-м разряде обоих слагаемых и комбинация 01 или 10 в 4-м и 3-м разрядах тетрады суммы и есть 0 либо во 2-м, либо в 1-м разрядах тетрады суммы.
! Единица переноса между тетрадами не учитывается.
Проверить знак результата. Если результат отрицателен, преобразовать его в ПК, инвертировав все тетрады.
А = - 356,31
В = 723,54
А/=
- 0,35631
В/= 0,72354
А2-4-2-1= 1,0011.1011.1100.0011.0001
Аок = 1,1100.0100.0011.1100.1110
В2-4-2-1 = 0,1101.0010.0011.1011.0100
Сложение:
1,
1100.0100.0011.1100.1110
0, 1101.0010.0011.1011.0100 |
|
10,1001.0110.0111.1000.0010
1 |
|
0,1001.0110.0111.1000.0011
1010.0110.0110.1010 |
коррекция |
0,0011.1100.1101.0010.0011 |
(А+В)2-4-2-1 =
0, 0011.1100.1101.0010.00112-4-2-
Результат с учетом масштаба М=103
(А+В)=367,2310
Проверка:
-356,3110+723,5410=367,2310
А = - 356,31
В = - 723,54
А/=
- 0,035631
В/= - 0,072354
А3а+2= 1,00010.01011.10001.10100.
Аок =
1,11101.10100.01110.01011.
В3а+2=
1,00010.10111.01000.01011.
Вок
= 1,11101.01000.10111.10100.
Сложение:
1, 11101.10100.01110.01011.10100. 1, 11101.01000.10111.10100.01110. |
|
11,11010.11101.00110.00000. 1 |
|
1,11010.11101.00110.00000. |
|
00010.00010.00010 00010 | коррекция |
0,11010.11101.01000.00010. |
инвертируем т.к. результат отрицательный |
1,00101.00010.10111.11101. |
(А+В)3а+2 = 1,
00101.00010.10111.11101.11010.
Результат с учетом масштаба М=104
(А+В)= - 1079,8510
Проверка:
-356,3110+(-723,54) 10= - 1079,8510
VI. Умножение двоично-десятичных чисел.
Алгоритм
умножения заключается в
При сдвиге двоично-десятичных чисел (код 8-4-2-1) на один разряд как влево так и вправо необходима коррекция. При сдвиге влево коррекция производится точно так же, как и при сложении, то есть при появлении неправильных тетрад или единицы переноса из тетрады осуществляется прибавление к данной тетраде корректирующего кода 0110. При сдвиге вправо корректирующий код образуется как разница между математическим результатом деления двоичной тетрады пополам (16/2=8) и фактическим (10/2=5), 8-5=310=0011. Эту разницу нужно вынести из тетрады, в которой образовалась единица переноса. Таким образом, корректирующий код будет 310=-00112=1101ДК.
А = 35610
В = 72310
А = 0011.0101.01108-2-4-1 - множитель
В= 0111.0010.00118-2-4-1 - множимое
|
|
Произведение |
|
0011.0101.0110
0001.1010.1011 1101 1101 0001.0111.1000 0000.1011.1100 .1101.1101 0000.1000.1001 0000.0100.0100
0000.0010.0010 0000.0001.0001 0000.0000.1000 1101 0000.0000.0101 0000.0000.0010 0000.0000.0001
|
0000.0000.0000.0111.0010.0011
0000.0000.0000.1110.0100.0110 0110 0000.0000.0001.0100.0100.0110 0000.0000.0010.1000.1000.1100 0110 0000.0000.0010.1000.1001.0010 0000.0000.0101.0001.0010.0100 0110 0110 0000.0000.0101.0111.1000.0100 0000.0000.1010.1111.0000.1000 0110 0110 0110 0000.0001.0001.0101.0110.1000 0000.0010.0010.1010.1101.0000 0110 0110 0110 0000.0010.0011.0001.0011.0110 0000.0100.0110.0010.0110.1100 0110 0000.0100.0110.0010.0111.0010 0000.1000.1100.0100.1110.0100 0110 0110. 0000.1001.0010.0101.0100.0100 0001.0010.0100.1010.1000.1000 0110 0110. 0001.1000.0101.0000.1000.1000 |
0000.0000.0000.0000.0000.0000
0000.0000.0000.0000.0000.0000 0000.0000.0010.1000.1001.0010 0000.0000.0010.1000.1001.0010 0000.0000.0010.1000.1001.0010 0000.0010.0011.0001.0011.0110 0000.0010.0101.1001.1100.1000 0110 0000.0010.0101.1010.0010.1000 0000.0010.0101.1010.0010.1000 0000.0100.0110.0010.0111.0010 0000.0110.1011.1100.1001.1010 0110 0110 0110 0000.0111.0010.0010.1010.0000 0000.0111.0010.0010.1010.0000 0001.1000.0101.0000.1000.1000 0001.1111.0111.0011.0010.1000
0110
0110
0010.0101.0111.0011.1000.1000 2 5 7 3 8 8 |
Сдвиг Корр Сдвиг Корр Слож Сдвиг Корр Сдвиг Корр Сдвиг Корр Слож Корр Сдвиг Корр Слож Корр Сдвиг Корр СдвигКорр Слож Корр |
А*B = 0010.0101.0111.0011.1000.10008
Проверка:
35610*72310 = 257 38810
Метод основан на преобразовании множителя в виде суммы произведений десятичных чисел на степень двойки. Множитель представляется в коде 8-4-2-1. Особенностью преобразованного множителя является то, что десятичное число состоит только из символов 0 и 1, а слагаемых в нём не более четырёх. Каждое из четырёх частичных произведений получают последовательно сдвигом множимого на требуемое количество десятичных разрядов (тетрад) с подсуммированием и коррекцией. Умножение же на степень двойки равносильно сдвигу влево на 1 разряд с введением коррекции.
А2-10 = 0011.0101.01108-2-4-1 -множимое
В2-10 = 0111.0010.00118-2-4-1 - множитель
Преобразование множителя:
B2-10 = 0111. 0010.00118-2-4-1 = (0*23 + 1*22 + 1*21 + 1*20)*102 + (0*23 + 0*22 + 1*21 + 0*20)*101+ (0*23 + 0*22 + 1*21 + 1*20)*100 = (000)*23+(100)*22+(111)*21 +(101)*20
A2-10=0011.0101.01108-2-4-1
Множитель (преобраз.) | Произведение | |||
100*22 | *100 | 0000.0011.0101.0110.0000.0000 | ||
*21 | 0000.0110.1010.1100.0000.0000 | |||
Корр. | 0110.0110 | |||
0000.0111.0001.0010.0000.0000 | ||||
*22 | 0000.1110.0010.0100.0000.0000 | |||
корр | 0110 | |||
|
0001.0100.0010.0100.0000.0000 | 0001.0100.0010.0100.0000.0000 | ||
*1
*10 |
0000.0000.0000.0011.0101.0110
0011.0101.0110.0000 |
|||
0000.0000.0011.1000.1011.0110 | ||||
Корр | |
|||
111*21 | 11= | 0000.0000.0011.1001.0001.0110 | ||
+100 | 0000.0011.0101.0110.0000.0000 | |||
Корр | 0000.0011.1000.1111.0001.0110
0110 |
|||
111= | 0000.0011.1001.0101.0001.0110 | |||
*21 | 0000.0111.0010.1010.0010.1100 | |||
корр | 0110 0110 0110 | |||
0000.0111.1001.0000.0011.0010 | 0000.0111.1001.0000.0011.0010 | |||
101 | *100
*1 |
0000.0011.0101.0110.0000.0000
0000.0000.0000.0011.0101.0110 0000.0011.0101.1001.0101.0110 |
0000.0011.0101.1001.0101.0110 | |
Сложение коррекция |
0001.0100.0010.0100.0000.00000 0001.1011.1011.0100.0011.0010 0110 0110 | |||
сложение | 0010.0010.0001.0100.0011.0010
0000.0011.0101.1001.0101.01100 | |||
коррекция | 0110 | |||
0010.0101.0111.0011.1000.1000
2 5 7 3 8 8 | ||||