ЛЗЛ(Х),(Y) - логічний зсув ліворуч числа X, на звільнене місце наймолодшого розряду праворуч записується двійковий розряд Y.




ЗНАЕТЕ ЛИ ВЫ?

ЛЗЛ(Х),(Y) - логічний зсув ліворуч числа X, на звільнене місце наймолодшого розряду праворуч записується двійковий розряд Y.



Де = 0.1001110010 (прямий код, доповняльний код), ЗнДе = 0 (+);

Дк = 0.10011 (прямий код, доповняльний код), ЗнДк = 0 (+);

-Дк = 1.01101 (доповняльний код).

Визначення n:

Де = +1001110010, Дк = +10001. Де довше за Дк на 5 бітів, тобто n= 5+1 = 6.

 

Лч S S<0? Q Ч Наступна операція
0.1001110010       Q = ЗнДе # ЗнДк
      Ч = ЛЗЛ(Ч), Q
      S = S - Дк
0.1001110010 + 1.01101 0.0000010010 S>0     Q = 1
    Ч = ЛЗЛ(Ч), Q
    S = ЛЗЛ(S), 0
0.0000100100       Лч = Лч - 1
        S = S - Дк
0.0000100100 + 1.01101 1.0110110010 S<0     Q = 0
    Ч = ЛЗЛ(Ч), Q
    S = S + Дк
1.0110110010 + 0.10011 0.0000010010       S = ЛЗЛ(S), 0
0.0000100100       Лч = Лч - 1
        S = S - Дк
0.0000100100 + 1.01101 1.0111000100 S<0     Q = 0
    Ч = ЛЗЛ(Ч), Q
    S = S + Дк
1.0111000100 + 0.10011 0.0000100100       S = ЛЗЛ(S), 0
0.0001001000       Лч = Лч - 1
        S = S - Дк
0.0001001000 + 1.01101 1.0111101000 S<0     Q = 0
    Ч = ЛЗЛ(Ч), Q
    S = S + Дк
1.0111101000       S = ЛЗЛ(S), 0
        S = S - Дк
1.0111101000 + 1.01101 0.0100101000 S>0     Q = 1
    Ч = ЛЗЛ(Ч), Q
    S = ЛЗЛ(S), 0
0.1001010000 + 1.01101 1.1111110000       S = ЛЗЛ(S), 0
1.1111100000       Лч = Лч - 1
        S = S - Дк
1.1111100000 + 1.01101 1.0110000000 S<0     Q = 0
    Ч = ЛЗЛ(Ч), Q
    S = S + Дк
1.0110000000 + 0.10011 0.1111100000       S = ЛЗЛ(S), 0
0.1111100000       Лч = Лч - 1
        Кінець

 

Результат Ч = 0100000, перший розряд треба розуміти як знаковий, тобто результат у

прямому коді дорівнює 0.100000 (крапка відділяє розряд знаку від вагових розрядів).

Результат додатній

0.1001110010 : 0.10011 = 0.100000

 

4.8 Виконати операцію ділення 10-розрядного двійкового коду (10)(1ц2л)(1ц8л) на 5-розрядний двійковий код (1)(1ц1л) методом без відновлення залишків. Навести алгоритм ділення й таблицю, яка відображає зміни всіх операндів (діленого, дільника, лічильника,

Частки, окремих розрядів та ознак), які беруть участь у множенні, після виконання кожного з операторів алгоритму.

(10)(1ц2л)(1ц8л) = 10 0111 0010

(1)(1ц1л) = 1 0011

Алгоритм ділення:

 
 

 

 


В алгоритмі використанітакі позначення:

Лч - лічильник;

Ч - частка;

n - кількість двійкових розрядів частки без знаку. Для визначення кількості двійкових розрядів частки при діленні цілого числа на ціле необхідно в прямому двійковому коді написати одне під одним ділене і дільник, вирівнявши їх за одиницею в старшому розряді. Тоді кількість розрядів цілої частини частки n буде дорівнювати різниці довжин вирівняних дільника і діленого, збільшеній на 1;

Дк - дільник;

Де - ділене;

Зн - знак;

# - позначення операції додавання за модулем 2;

S - суматор, на початку виконання алгоритму в ньому буде знаходитися ділене;

ЛЗЛ(Х),(Y) - логічний зсув ліворуч числа X, на звільнене місце наймолодшого розряду праворуч записується двійковий розряд Y.

Де = 00.1001110010 (доповняльний код);

Де = + 1001110010 (прямий код);

Дк = 00.10011 (доповняльний код);

-Дк = 11.01101 (доповняльний код).

Визначення n:

Де = +1001110010, Дк = +10011. Де довше за Дк на 5 бітів, тобто n= 5+1 = 6.

 

Лч S Зн S Q Ч Наступна операція
00.1001110010     Q = ЗнS # ЗнДк
    Ч = ЛЗЛ(Ч), Q
      S = S - Дк
00.1001110010 + 11.01101 00.0000010010     Q = ЗнS # ЗнДк
  Ч = ЛЗЛ(Ч), /Q
    S = ЛЗЛ(S), 0
00.0000100100     Лч = Лч - 1
      S = S - Дк
00.0000100100 + 11.01101 11.0111000100     Q = ЗнS # ЗнДк
  Ч = ЛЗЛ(Ч), /Q
    S = ЛЗЛ(S), 0
11.0111000100       Лч = Лч - 1
      S = S + Дк
11.0111000100 + 00.10011 00.0000100100     Q = ЗнS # ЗнДк
  Ч = ЛЗЛ(Ч), /Q
    S = ЛЗЛ(S), 0
00.0001001000       Лч = Лч - 1
      S = S + Дк
00.0001001000 + 11.01101 11.0111101000     Q = ЗнS # ЗнДк
  Ч = ЛЗЛ(Ч), /Q
    S = ЛЗЛ(S), 0
11.0111101000       Лч = Лч - 1
      S = S - Дк
11.0111101000 + 00.10011 00.0001001000     Q = ЗнS # ЗнДк
  Ч = ЛЗЛ(Ч), /Q
    S = ЛЗЛ(S), 0
00.00100100000       Лч = Лч - 1
      S = S + Дк
00.00100100000 + 11.10001 11.1010110000     Q = ЗнS # ЗнДк
  Ч = ЛЗЛ(Ч), /Q
    S = ЛЗЛ(S), 0
11.0101100000       Лч = Лч - 1
        Кінець

 

Результат Ч = 0100000, перший розряд треба розуміти як знаковий, тобто результат у доповняльному коді дорівнює 0.100000 (крапка відділяє розряд знаку від вагових розрядів).

Результат додатній

0.1001110010 : 0.10011 = 0.100000

 

4.9 Виконати операції додавання A+B, віднімання A-B, множення AB і ділення A/B над числами, представленими у форматі з рухомою комою. Число A складається з кодів 2ц1л і 2ц8л, число B складається з кодів 2ц2л і 2ц7л. Формат операндів і результатів повинен задовільняти вимогам табл. ТZ5.

2ц1л = 5; 2ц8л = 8;

2ц2л = 8; 2ц7л = 3.

A = 5816 = 0 101 10002

B = 8316 = 1 000 00112

Операція додавання А+В

 

Аналіз і підготовка операндів Операнд A Операнд B
Операнди у форматі з рухомою комою (шістнадцятковий код)
Операнди у форматі з рухомою комою (двійковий код)
Розбиті на поля операнди у форматі з рухомою комою 0.101.1000 1.000.0011
Знак + (0) + (0)
Характеристика 5 = 101 6 = 110
Показник порядку 1 = 5 - 4 2 = 6 - 4
Порядок 2 = 21 4 = 22
Мантиса 23/32=0,10111 19/32=0,10011
Величина числа +2*23/32=+23/16 +4*19/32=+19/8
Примітка A=+23/16 B=+19/8
Вирівняний порядок – порядок результату 4 = 22  
Мантиса, яка відповідає вирівняному порядку ¼ =0,010000  
Визначення результату Результат:
Знак результату + (0)
Мантиса результату визначається додаванням мантис операндів у модифікованому доповняльному коді 00.10011 +00.010111 00.111101
Заокруглення мантиси результату (в дужках – розряди, які відкидаються) 00.11110(1)
Мантиса результату 15/16 = 00.11110
Показник порядку результату
Порядок результату 8 = 23
Величина результату 60/16=+8*15/16
Характеристика результату 7=3+4=111
Розбитий на поля результат у форматі з рухомою комою 0.111.1110
Результату у форматі з рухомою комою (двійковий код)
Результату у форматі з рухомою комою (шістнадцятковий код)
Примітка A+B=23/16+19/8=61/16 ≈ 60/16

Операція додавання А-В

 

Аналіз і підготовка операндів Операнд A Операнд B
Операнди у форматі з рухомою комою (шістнадцятковий код)
Операнди у форматі з рухомою комою (двійковий код)
Розбиті на поля операнди у форматі з рухомою комою 0.101.0111 0.110.0011
Знак + (0) + (0)
Характеристика 5 = 101 6 = 110
Показник порядку 1 = 5 - 4 2 = 6 - 4
Порядок 2 = 21 4 = 22
Мантиса 23/32=0,10111 19/32=0,10011
Величина числа +2*23/32=+23/16 +4*19/32=+19/8
Примітка A=+23/16 B=+19/8
Визначення результату Результат:
Знак результату - (1)
Мантиса результату визначається відніманням мантис операндів, результат ненормалізований 00.10011 +11.01001 11.11100 = 1.00100
Нормалізація мантиси результату (2 зсуви ліворуч) 1.10000
Мантиса результату -15/16 = 1.11100
Зменшення показника порядку результату на 2 для компенсації нормалізації мантиси результату 2-2=0
Показник порядку результату
Порядок результату 1 = 20
Величина результату -15/16=+1*(-15/16)
Характеристика результату 4=0+4=100
Розбитий на поля результат у форматі з рухомою комою 1.100.1100
Результату у форматі з рухомою комою (двійковий код)
Результату у форматі з рухомою комою (шістнадцятковий код) СС
Примітка A-B=23/16-19/8=-15/16

 

 

Операція додавання А*В

 

Аналіз і підготовка операндів Операнд A Операнд B
Операнди у форматі з рухомою комою (шістнадцятковий код)
Операнди у форматі з рухомою комою (двійковий код)
Розбиті на поля операнди у форматі з рухомою комою 0.101.0111 0.110.0011
Знак + (0) + (0)
Характеристика 5 = 101 6 = 110
Показник порядку 1 = 5 - 4 2 = 6 - 4
Порядок 2 = 21 4 = 22
Мантиса 23/32=0,10111 19/32=0,10011
Величина числа +2*23/32=+23/16 +4*19/32=+19/8
Примітка A=+23/16 B=+19/8
Визначення результату Результат:
Знак результату + (0)
Мантиса результату визначається перемноженням мантис операндів, результат ненормалізований 0.10111 *0.10011 +10111 +00000 +00000 +10111 0.0110110101
Нормалізація мантиси результату (1 зсув ліворуч) 0.1101101010
Заокруглення мантиси (в дужках – розряди, які відкидаються) 0.11011(01010)
Мантиса результату 27/32 = 0.11011
Порядок результату визначається додаванням показників порядків операндів 1+2=3
Зменшення показника порядку результату на 1 для компенсації нормалізації мантиси результату 3-1=2
Показник порядку результату
Порядок результату 4 = 22
Величина результату 108/32=+4*27/32
Характеристика результату 7=3+4=111
Розбитий на поля результат у форматі з рухомою комою 0.111.1011
Результату у форматі з рухомою комою (двійковий код)
Результату у форматі з рухомою комою (шістнадцятковий код)
Примітка A*B=23/16*19/8≈108/32

 

Операція додавання А/В

 

Аналіз і підготовка операндів Операнд A Операнд B
Операнди у форматі з рухомою комою (шістнадцятковий код)
Операнди у форматі з рухомою комою (двійковий код)
Розбиті на поля операнди у форматі з рухомою комою 0.101.0111 0.110.0011
Знак + (0) + (0)
Характеристика 5 = 101 6 = 110
Показник порядку 1 = 5 - 4 2 = 6 - 4
Порядок 2 = 21 4 = 22
Мантиса 23/32=0,10111 19/32=0,10011
Величина числа +2*23/32=+23/16 +4*19/32=+19/8
Примітка A=+23/16 B=+19/8
Визначення результату Результат:
Знак результату + (0)
Мантиса результату визначається діленням мантис операндів, результат нормалізований 0.10111:0.10011=0.1111 -0.1001 0.01110 -0.100 0.01010 -0.10 0.01000 -0.1 0.00111
Мантиса результату 15/16 = 0.11110
Порядок результату визначається відніманням показників порядків операндів 1-2=-1
Порядок результату 1/2 = 2-1
Величина результату 15/32=+1/2*15/16
Характеристика результату 3=-1+4=011
Розбитий на поля результат у форматі з рухомою комою 0.011.1110
Результату у форматі з рухомою комою (двійковий код)
Результату у форматі з рухомою комою (шістнадцятковий код)
Примітка A/B=(23/16)/(19/8)≈15/32

 

 





Последнее изменение этой страницы: 2016-04-26; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.236.156.34 (0.01 с.)