Представление чисел в ЭВМ

Автор работы: Пользователь скрыл имя, 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

Список литературы………………………………………………………………………...…….

Файлы: 1 файл

курсач 2009 год.doc

— 447.50 Кб (Скачать файл)
 

   ПК  получается прибавлением избытка 3 к  коду 8-4-2-1. 

   Алгоритм  сложения в коде с  избытком 3

    1. Проверить знаки слагаемых. Отрицательные преобразовать в ОК путем инвертирования тетрад.

    2. Сложить двоично-десятичные числа по правилам двоичной арифметики.

    3. Выполнить коррекцию результата, прибавив код 1101 к тетрадам суммы, из которых не сформировалась единица переноса и прибавив код 0011 к тетрадам суммы из которых сформировалась единица переноса. Единицу переноса между тетрадами при коррекции отбрасывать.

    4. Проверить знак результата. Отрицательный преобразовать в ПК, инвертируя тетрады. 

А =   356,31 

В = - 723,54

А/=   0,35631                                               М=103

В/= - 0,72354

А2-10 =  0,0110.1000.1001.0110.0100

В2-10 =  1,1010.0101.0110.1000.0111

Вок =    1,0101.1010.1001.0111.1000

Сложение: 

0, 0,0110.1000.1001.0110.0100  
1,    1,0101.1010.1001.0111.1000  
      1,1100.0011.0010.1101.1100       
1101 0011 0011 1101 1101              коррекция
1,1001.0110.0101.1010.1001           инвертируем тетрады т.к. результат отрицательный
1,0110.1001.1010.0101.0110  
 

(А+В)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

   - если суммарная тетрада ³ 5, то необходима коррекция кодом +6 (0110).

   - если одна из исходных тетрад <5, а другая – ³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                                                М=103

В/=    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-1

 

Результат с учетом масштаба М=103

(А+В)=367,2310

 

Проверка:

-356,3110+723,5410=367,2310

 
 

 

 
 
 

А = - 356,31 

В = - 723,54

А/= - 0,035631                                                М=104

В/= -  0,072354

А3а+2=  1,00010.01011.10001.10100.01011.00101

Аок =   1,11101.10100.01110.01011.10100.11010

В3а+2=  1,00010.10111.01000.01011.10001.01110

Вок  =  1,11101.01000.10111.10100.01110.10001

 
 

Сложение:

 
1, 11101.10100.01110.01011.10100.11010

1, 11101.01000.10111.10100.01110.10001

 
 
11,11010.11101.00110.00000.00011.01011

1

 
 
1,11010.11101.00110.00000.00011.01100  
  00010.00010.00010 00010  коррекция
  0,11010.11101.01000.00010.00101 01110 инвертируем т.к. результат отрицательный
1,00101.00010.10111.11101.11010.10001  
 

(А+В)3а+2 = 1, 00101.00010.10111.11101.11010.10001

Результат с учетом масштаба М=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-2-4-1 = 257.38810 

 

Проверка:

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  
  Корр                                      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.00000000.0111.1001.0000.0011.0010

0001.1011.1011.0100.0011.0010

         0110 0110                         

              
сложение 0010.0010.0001.0100.0011.0010

0000.0011.0101.1001.0101.01100010.0101.0110.1101.1000.1000

    коррекция                            0110
    0010.0101.0111.0011.1000.1000

   2       5       7       3       8       8

 

Информация о работе Представление чисел в ЭВМ