ОФК
.pdf5.5.2. Ділення двійкових чисел у форматі з рухомою комою
Підчасопераціїділеннячисел,поданихуформізрухомоюкомоюїхні мантисиділяться якчисла з фіксованоюкомою, апорядки віднімаються. У обохвипадкахперевірканапереповненняобов’язкова.Алеоскількиреально віднімаються характеристики чисел, то ділення виконується за такою формулою:
A1 : A2 m1 2r1 : m2 2r2 m1 : m2 2r1 r2 l .
Знак відповіді визначається звичайним способом. Якщо відповідь вийшланенормалізованою, товиконуєтьсяпроцедуранормалізації іокругленнявідповіді.
Оскількимантисиоперандівнормалізовані,томожливівипадки,коли mA mB ; mA mB . Упершомувипадкуперед початком діленнятреба віднятидільникізділеногоівцілучастинумантисичасткизаписати1.Потім продовжувати ділити числа звичним методом. Після отримання частки очевидно, що вона не буде нормалізованою. Значить, треба нормалізувати частку,тобтоутакомуразі зсунутиїїна1розрядвправо, адопорядкучастки додати1.
Нагадаємо,щопідчасреалізаціїалгоритмівматематичнихопераційу форматі з рухомою комою щоразу, коли здійснюється та або інша процедура, щозачіпає характеристикиоперандіваборезультату, виконуєтьсяконтрольнадпереповненням ізникненнямпорядку,тобтоконтролюєтьсяумова:
|
|
|
|
|
|
|
|
0 r rmax , |
|
|
|
де rmax l pmax .Розглянемоприклад. |
|
|
|
||||||||
Приклад5.16. A 1010 0,10102 , pA 4 , |
B 2 0,1, |
pB 2 . p pA |
|||||||||
pB 2 . |
mA 0,1010 , |
mB 0,1 , |
|
mB 1 1,1000 . |
|||||||
|
mA |
|
|
|
mB |
|
. |
Під час першого віднімання |
mB від mA 1 |
||
|
|
|
|
||||||||
|
записуємов цілучастинучастки: |
|
|
0,1010 + 1,1000 a0 0,0010
2a0 +0,01001,1000 a1 1,1100
100
C 1, XX , далі будемо ділити методом ділення без відновленнязалишку.
a1 0 |
C 1,0 |
2a1 +1,1000 |
|
|
|
0,1000 |
a2 0 |
C 1,01 , зсуваємо вправо |
C 0,101 , |
0,0000 |
p p 1 3.
5.6. Оцінка точності виконання арифметичних операцій
Яквженеодноразовонаголошувалося, дляподаннячиселвбудь-якій формі в комп’ютері відводиться скінченна довжина розрядної сітки. Тому числа, загалом, через неминучі процедури округлення, подають з деякою похибкою.Узв’язкузцимобчисленняукомп’ютерівиконуютьсязпохибкою, якав деякихвипадкахможе істотнонакопичуватися.
Нехайвеличини A і B заданіз абсолютнимипохибками A і B :
A A A , B B B ,
де A і B – машинне подання чисел A і B . Тоді, як нам вже відомо, відносніпохибкиподанняцихчиселбудутьдорівнювати:
A A A і B B B .
Можнапоказати,щовідноснапохибкаалгебраїчноїсуми будедорів-
нювати:
A B |
A |
A |
B |
B , |
A B |
A B |
відноснапохибка добутку:
AB A B ,
авідносна похибкачастки:
AB A B .
З наведених співвідношень видно, що операції множення і ділення трохизбільшуютьвідноснупохибку,авідніманнямайжерівнихчиселможе значно її збільшити. Дійсно, якщо прийняти, що A B , а A мало відрізняєтьсявід B ,то:
2 A
A B A B .
Оскільки значення A B у такомуразі мале, а 0 , то A B
може бути достатньо великою величиною.
101
Через неминучі похибки машинних обчислень може спостерігатися недотримання деяких основних законів математики. Наприклад, може не виконуватися точно закон асоціативності для множення. Закон дистрибу-
тивності, що зв’язує операції множення і додавання, може значно порушуватися, тобтонебудестроговиконуватиметьсярівність:
A B C A B A C ,
азвідсиможе виникнутиситуація, коли:
2 A2 B2 A B 2 .
Томупотрібно дуже ретельнооцінювати конкретні умови обчислень і, якщонеобхідно, переходитидоподання чиселз підвищеною(подвійною або потрійною) точністю і вживати різні інші заходи, щоб певною мірою виключитивплив накопиченоїпохибкина результатобчислень.
5.7. Похибка округлення
Оскількивкомп’ютері доводитьсявдаватисядоокругленнячисел, то неминучіпохибкиокруглення.Якщодляподаннямантисивикористовується тільки n розрядів,тозображеннячисла ділитьсянадвічастини:
Aq m d n A0 d p n ,
де A0 d p n A0 – «хвіст»числа, щонепотрапивурозряднусітку.
Залежно від того, як враховується значення A0 у машинному зображенні, існуєдекілька способівокруглення.
1.Відкидання A0 .Відноснапохибкадорівнює:
|
|
|
|
|
|
|
|
A |
|
d P n |
|||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
окр |
|
|
0 |
|
|
|
|
|
. |
|||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
m |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
d P |
|||||||
Оскільки d 1 |
|
m |
|
1 , то 0 |
|
A0 |
|
1,тому: |
|||||||||
|
|
|
|
||||||||||||||
|
|
окр |
|
1d P n |
|
d n 1 , |
|||||||||||
|
|
d 1 d P |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
тобтопохибкаокругленнянезалежитьвідзначеннясамогочисла, азалежить тількивідкількості розрядівукомп’ютерідлябудь-якоїсистемичислення.
2. Симетричне округлення. Аналізують значення A0 . Приймаючи,
що:
102
m d n |
, |
якщо |
|
|
|
A |
|
|
|
d 1 |
|
|
|||||||||
|
|
|
|
0 |
|
|
|
|
||
A |
|
|
|
|
|
|
|
|
|
|
m d n |
d P n , |
якщо |
|
A |
|
d 1. |
||||
|
|
|||||||||
|
|
|
|
0 |
|
|
За умови A0 d 1 виконується додаванням одиниці до молодшого розрядумантиси. Абсолютнапохибка:
|
|
|
A |
|
d p n |
|
|
|
|
||||
окр |
|
|
0 |
|
|
|
|
|
|
|
|
d p n. |
|
|
|
|
1 A |
|||
|
|
|
0 |
|
Максимально можливе значення модуля абсолютної похибки дорівнює 0,5d p n ,авідноснапохибкастановить:
окр 0,5d p n |
md p 0,5d n 1 , |
тобтопомилка неперевищуєполовини одиницімолодшогорозряду. Спосіб симетричногоокругленнянайчастіше застосовуютьна практиці.
3. Округлення за доповненням. Утакомуразі для округленняберуть інформацію, що міститься в n 1 -у розряді. Якщо d 2 , а у n 1 -у розрядіміститься1,в n -йрозряд додається1;якщожтамнуль,вмістрозрядів праворучвід n -говідкидається.
Контрольні питання та завдання:
I. Подайтуунаданихарифметичнихвиразахдесятковічисла подайтеуїхніх
двійковихеквівалентахівиконайтевідповідніоперації: |
|
||||
1. |
289+ 393; |
356 – 205; |
9. |
353 + 277; |
342 – 243; |
2. |
275+ 333; |
426 – 222; |
10. |
265 + 165; |
364 – 243; |
3. |
313+ 254; |
392 – 235; |
11. |
237 + 155; |
380 – 237; |
4. |
288+ 262; |
376 – 295; |
12. |
257 + 213; |
290 – 271; |
5. |
278+ 356; |
277 – 266; |
13. |
247 + 223; |
350 – 251; |
6. |
273+ 303; |
404 – 207; |
14. |
271 + 211; |
310 – 213; |
7. |
222+ 333; |
386 – 283; |
15. |
235 + 195; |
320 – 111. |
8. |
353+ 276; |
320 – 291; |
|
|
|
103
ІІ. Додатиудоповняльномуіоберненомукодахдвійковічислаз фіксованою комою:
1.А=-0,101101 В=+0,110110;
2.А=-0,101010 В=+0,000111;
3.А=-0,111011 В=+0,001110;
4.А=-0,111001 В=+0,100111;
5.А=-0,101011 В=+0,100001;
6.А=-0,101101 В=+0,011001;
7.А=-0,100001 В=+0,110001;
8.А=-0,100011 В=+0,010101;
9.А=-0,100101 В=+0,100011;
10.А=-0,011101 В=+0,000111;
11.А=-0,110101 В=+0,010111;
12.А=-0,011001 В=+0,100101;
13.А=-0,100111 В=+0,101001;
14.А=-0,100101 В=+0,011101;
15.А=-0,111011 В=+0,101101.
III. Додатиумодифікованомудоповняльномукодідвійковічислаз рухомою комою з основою d 2 :
1. |
A 0,110011 10 011 |
B 0,100001 10 010 ; |
|
2. |
A 0,101010 10 101 |
B 0,000111 10 011 ; |
|
3. |
A 0,111011 10 101 |
B 0,001110 10 10 ; |
|
4. |
A 0,111001 10 011 |
B 0,100111 10 010 ; |
|
5. |
A 0,101011 10 100 |
B 0,100001 10 011 ; |
|
6. |
A 0,101101 10 100 |
B 0,011001 10 010 ; |
|
7. |
A 0,100001 10 111 |
B 0,110001 10 101 ; |
|
8. |
A 0,100011 10 010 |
B 0,010101 10 |
011 ; |
9. |
A 0,100101 10 011 |
B 0,100011 10 101 ; |
|
10. |
A 0,011101 10 010 |
B 0,000111 10 |
010 ; |
11. |
A 0,110101 10 100 |
B 0,010111 10 |
101 ; |
12. |
A 0,011001 10 101 |
B 0,100101 10 011 ; |
|
13. |
A 0,100111 10 010 |
B 0,101001 10 010 ; |
|
14. |
A 0,100101 10 011 |
B 0,011101 10 |
010 ; |
15. |
A 0,111011 10 011 |
B 0,101101 10 101. |
104
РОЗДІЛ 6
ВИКОНАННЯ ОПЕРАЦІЙ НАД ДЕСЯТКОВИМИ ЧИСЛАМИ
6.1. Формальні правила порозрядного додавання у Д-кодах
Операції над десятковими числами (десяткова арифметика) часто входятьдоскладуосновних командуніверсальних комп’ютерів. Крім того, десяткова арифметика широко реалізується в електронних калькуляторах і персональнихкомп’ютерах. Тому,крімзагальноїінформаціїпроможливості подання десяткових чисел (див. розділ 3.4), спеціалісту необхідно знати і алгоритмивиконанняарифметичних операційнадними.
Двійково-десятковий код ( Д -код) десяткового числа, як вже відзначалосяраніше, цетакеподаннячисел, уякомукожна десятковацифра зображаєтьсягрупоюз чотирьохдвійковихрозрядів(тетрадою з двійкових символів):
A a4,n a3,n a2,n a1,n n a4,n 1a3,n 1a2,n 1a1,n 1 n 1... a4,0 a3,0 a2,0 a1,0 0 ,
де ai, j –двійковірозрядитетради;
i – номер розрядуусередині тетради; j –номер тетради.
Дляоднозначностіпереведеннячиселу Д -кодінавпакибажано,щоб розряди тетрад мали визначену вагу. Тоді значення десяткової цифри ai відповідаєвиразу:
A a4d4 a3d3 a2d2 a1d1 ,
де di –вага розрядутетради.
Максимальнодопустимедесяткове числоутетрадідорівнює 9. Якщо виникаєчисло10ібільше,тостаршаодиницяпереходитьунаступну,старшу тетраду.Яквжезазначалосяраніше, існуютьрізні види Д -кодів.Мибудемо розглядати Д -код, вага розрядів якоготака-8, 4, 2, 1. Цей кодназивається oaei ? Д1 -кодом прямого заміщення. Але є коди з іншою вагою розрядів тетрад:5,1,2,1; 2,4,2,1таін.Вказанікомбінаціїуцих Д -кодахдозволені,усі
105
інші – заборонені. Наявність дозволених і заборонених комбінацій – дуже важливавластивість Д -кодів. Вона відрізняєїхвід звичайнихпозиційних систем числення, уякихусікомбінаціїдозволені.
У Д1 -кодіпрямогозаміщення(8-4-2-1), щорозглядається,дозволені комбінаціївідповідають двійковим еквівалентам десятковихцифр з вагами розрядів, якідорівнюють степеням основисистемичислення 2.Цей Д -код найчастіше використовують у різних комп’ютерах. У табл. 6.1 наведені прикладизаписудеякихдесятковихчиселукоді Д1 прямогозаміщення.
Длявизначення формальнихправилпорозрядногододаваннячисел, щоподані у Д -коді, розглянемоособливості, якіпритаманніцим кодам.
1.Наявність дозволених і заборонених комбінацій. Поява забороненої комбінаціїпідчас виконанняяких-небудьдійнадчисламисвідчитьпро виникнення помилки або ж про необхідність ввести коригування результату.
2.Уразі додаваннятетрадвиникаєпотетрадний перенос, тобтоперенос одиниці устаршуза порядком тетраду, замість десятковогопорозрядного перенесення.
|
|
|
|
|
Таблиця 6.1. |
|
|
|
|
|
|
|
|
Десяткові |
Код Д1 |
Десяткові |
Код Д1 |
Десяткові |
Код Д1 |
|
цифри |
цифри |
цифри |
|
|||
|
|
|
|
|
|
|
0 |
0000 |
10 |
0001 0000 |
20 |
0010 0000 |
|
1 |
0001 |
11 |
0001 0001 |
21 |
0010 0001 |
|
2 |
0010 |
12 |
0001 0010 |
22 |
0010 0010 |
|
3 |
0011 |
13 |
0001 0011 |
33 |
0011 0011 |
|
4 |
0100 |
14 |
0001 0100 |
34 |
0011 0100 |
|
5 |
0101 |
15 |
0001 0101 |
45 |
0100 0101 |
|
6 |
0110 |
16 |
0001 0110 |
56 |
0101 0110 |
|
7 |
0111 |
17 |
0001 0111 |
67 |
0110 0111 |
|
8 |
1000 |
18 |
0001 1000 |
78 |
0111 1000 |
|
9 |
1001 |
19 |
0001 1001 |
89 |
1000 1001 |
|
ВведемоправиладодаванняД-кодів.Уразідодаваннячиселу Д -коді можутьвиникатитаківипадки:
1.Підчасдодаваннядвохтетрадувідповідному розрядічисластворюється сума, менша за 1010 . Тоді не потрібне коригування результату.
106
Наприклад, додати дві тетради a 0100 і b 0101 за умови, що відсутній перенос з молодшої тетради. Результат
c0100 0101 1001 – меншеза 1010 ікоригуванняневиконується.
2.Свідчення того, що результат додавання неправильний є або поява забороненої комбінації, якщо 15 c 10 , або поява потетрадного переносу p 16 , що перевищує значення десяткового переносу на 6.
Відповідно, потрібнекоригування результатууційтетрадівведенням поправки, яка дорівнює 0110 610 .
Розглянемодекілька прикладів.
Приклад6.1. Додатидвітетради: a 0101 , b 1001 занаявностіпереносуз молодшоїтетради: p 1 . Звідси: c a b p 0101 10010001 1111 –заборонена комбінація, потрібна поправка:
1111 +0110 [1] 0101,
тобторезультатдодаванняуційтетрадідорівнює0101істворенийпереносу старшутетраду.
Приклад6.2. Додати дватетрадизанаявностіпереносузмолодшоїтетради: a 0111, b 1001 , p 0001.
c a b p 1 0001 – з’явився потетрадний перенос і необхідне
коригування результату: c 0001 0110 0111 , |
p 1 – перенос у старшу |
||||
тетраду. |
a 27910 0010 |
0111 1001D , b 58110 |
|
||
Приклад 6.3. Додати числа |
|
||||
0101 1000 0001D . |
|
|
|
|
|
+a = 0010 |
0111 |
1001 |
|
|
|
b = 0101 |
1000 |
0001 |
|
|
|
0111 |
1111 |
1010 |
|
|
|
+ |
0110 |
0110 |
виправлення |
|
|
c = 1000 |
0110 |
0000 |
|
|
|
Тут стрілки показують передачуодного десяткового переносу.
Відповідь: c 1000 0110 0000D 86010 .
6.2. Подання від’ємних чисел у Д-кодах
Подання Д -кодаурозряднійсітцікомп’ютераможездійснюватисяу формі або з фіксованою, або з рухомою комою. Від’ємні числа можуть подаватися у прямому, оберненому або доповнювальному кодах.
107
Длякоду Д1 з комбінацієювагрозрядів8-4-2-1неможливоодержати обернений або доповняльний код простим інвертуванням, тому що інвертування наборутетрад означає отримання доповнення до 24 1 15 . Отже, необхідно забрати різницю. Один з способів, що використовується,
полягає утому, що в усі цифрові тетради у коді Д1 додається двійковий код числа 610 01102 і після цього виконується інвертування набору.
Одержане зображення являє собою обернений код цього числа. А доповнювальнийкодотримується, якзвичайно,додаванням1домолодшого розрядумолодшоїтетради. Розглянемоприклади:
Приклад 6.4. Подати число A 25610 0, 0010 0101 0110D у оберненомукоді длякоду Д1 .
+0, |
0010 |
0101 |
0110 |
в усі тетради додали код 0110 |
|
0110 |
0110 |
0110 |
|
0, |
1000 |
1011 |
1100 |
після інвертування отримаємо: |
Aоб 0, 0111 0100 0011D
Приклад6.5. Податичисло A 39810 удоповнювальномукодідлякоду Д1 .
+1, 0011 |
1001 |
1000 |
додали код 0110 в усі тетради |
0110 |
0110 |
0110 |
|
1, 1001 |
1111 |
1110 |
інвертуємо |
0110 |
0000 |
0001 |
|
Aдоп 1, 0110 |
|
+1 |
|
0000 |
0010 |
|
6.3. Виконання операцій додавання і віднімання у Д-кодах
Операціїдодаванняівідніманняу Д -кодахвиконують надоперандами заформальнимиправилами десятковоїарифметики:
1.Уразідодаваннядвохдодатнихчиселпереведенняудоповняльнийкод не виконується, бо прямий і доповняльний коди додатних чисел збігаються. У разі виникнення потетрадногопереносуаборезультату,
більшогоза9, виконуєтьсякоригуваннярезультатудодаванням числа6 докожноїтетради.
2.Додаваннявід’ємнихчиселвиконуєтьсяаналогічнододаваннюдодатних чиселзтієюлишевідмінністю,щорезультатунадаєтьсявід’ємнийзнак.
3.Під час віднімання чисел здійснюється попереднє переведення у доповнювальнийкод, а потім виконуєтьсядодавання.
108
Приклад 6.6. Додатидвачисла укоді Д1 , якщооднез нихдодатне, адруге–
від’ємне: |
A 1000 0010 0101D , B 1001 0100 0110D . |
|||||
+ A 1 = |
1, 0001 |
0111 |
0101 |
|
||
B |
= 0, 1001 |
0100 |
0110 |
|
||
|
|
1, |
1010 |
1011 |
1011 |
|
|
|
+ |
0110 |
0110 |
0110 |
– виправлення |
C |
= 0, |
0001 |
0010 |
0001 – перенос |
6.4. Множення чисел у Д-кодах
Виконання операції множення у Д -кодах принципово виконується закласичноюсхемою. Множеннячиселзводитьсядопослідовногододавання часткових добутків, отриманих множенням множеного на наступнуцифру множника. Оскільки кожна цифра множника подається тетрадою, то множення супроводжується розшифруванням значення наступної тетради множника і зсувом на чотири розряди зразу (на розмір тетради). Розшифрування можна здійснювати різними способами. Простішим прикладом є послідовневіднімання1із значеннятетрадидоодержання 0і,
відповідно, додавання множеного. Потрібно обов’язково враховувати
проміжніпереповнення. Розглянемоприклад: |
|
|||||
Приклад 6.7. Перемножимо |
A 2510 0010 0101D і |
B 1210 |
||||
|
|
0001 0010D ,проміжнідобуткиформуємоурегістрі P . |
||||
|
|
Аналіз тетрад множника B починаємоз молодшої. |
||||
+P |
0000 |
0000 |
0000 |
початковий стан регістру P |
|
|
A |
|
0010 |
0101 |
0010-0001=0001>0, отже потрібно ще раз А+Р |
||
+P |
0000 |
0010 |
0101 |
0010-0001=0,кінець аналізу молодшої тетради |
||
A |
0000 |
0010 |
0101 |
|||
P |
0100 |
1010 |
виправлення |
|
||
P |
0000 |
0101 |
+ 0110 |
|
||
0000 |
Зсуваємо А на 4 розряди вліво і сумуємо з Р, |
|||||
|
|
|
|
аналізуючи старшу тетраду В. |
|
|
+P |
0000 |
0101 |
0000 |
0001-0001=0 |
|
|
A |
0010 |
0101 |
0000 |
|
||
P |
0010 |
1010 |
0000 |
виправлення |
|
|
P |
+ 0110 |
|
|
|||
0011 |
0000 |
0000D 300 |
– відповідь. |
|
||
|
|
|
|
10 |
|
|
|
|
|
|
|
|
109 |
6.5. Ділення чисел у Д-кодах
Визначення знакф частки і умов, які не допускають продовження операції ділення (ділення на 0), потрібно виконувати на початку, щоб виключитиінші операціїдляекономіїзагальногочасуобчислень.
Ділення десяткових чисел у Д -кодах виконується методом послідовноговідніманнядільника хділеногонапершомукроцііз залишків –на наступних кроках. Відніманняна кожномукроці виконуєтьсядоти, доки не будеотримановід’ємнийзалишок.Щоразуприотриманнідодатногозалишку додається 1 у спеціальний лічильник, де накопичується наступна цифра частки. Потім здійснюєтьсязсувна4 двійковірозрядиідодаваннядільника доти,докиневийдедодатнийзалишок. Кількістьдодавань,без останнього,є доповненням відповідної цифри частки до 9, що заноситься у лічильник наступноїцифри частки.
Отже, ділення складається з низки циклів додавання і віднімання із зсувами,щопослідовночергуються. Знакчасткиотримуютьяклогічнусуму за модулем 2 знаків чисел (“+”, якщознаки діленогоі дільника однакові та “–”,якщознакирізні).
Приклад6.8. Поділитичисла,щоподаніу Д1 –коді: A 4810 0100 1000D , B 210 0000 0010D , у C1 – формуємо старшу тетраду частки, а у C2 – молодшу.
– |
0100 |
1000 : 0010 |
|
0010 |
>0 C1=C1+1=1 |
– |
0010 |
|
|
0010 |
C1=1+1=2= 00102 |
– |
0000 |
|
0010 |
|
-0010
+0010 0000 зсуваємо В на 4 розряди вправо і виконуємо ті ж дії:
0100 – 10000000
–01100010 >0 C2=C2+1=1
–01000010 >0 C2=1+1=2
–00100010 >0 C2=2+1=3
0000 |
C2=3+1=4= 01002 |
|
|
Відповідь: C1 C2 0010 0000 0000 |
0100 0010 |
0100D 2410 . |
110
6.6.Переведення чисел з Д-коду у двійковий код і
здвійкового у Д-код
|
Нехайзаданечотирирозряднечислоу Д1 -коді A a4a3a2a1 ,кожна |
||||||
десяткова цифра якого повинна бути подана у вигляді: |
ai 4 3 2 1 i . |
||||||
Тоді i 1,2,3,4 . Як нам вже відомо, зображення числа |
A можна подати у |
||||||
такомувигляді: |
|
|
|
|
|
|
|
|
A a4 103 a3 102 a2 101 a1 100 . |
|
|
|
|||
|
Як видноз цієї формули, під часпереведення з Д1 -кодуудвійковий |
||||||
кожен i -тийрозрядкоду Д |
1 |
потрібномножитина 10i 1 ,тобто: a |
1, a |
2 |
10 , |
||
|
|
|
1 |
|
|
||
a3 100 , a4 1000.Водночас 10 8 2 23 21,відповідно: |
|
|
|
||||
a1 4 3 2 1 1 |
|
|
|
|
|
|
|
a2 |
4 3 2 1 23 |
21 |
|
|
|
|
|
|
2 |
|
|
|
|
|
|
a3 |
4 3 2 1 23 |
21 23 21 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
a4 |
4 3 2 1 23 |
21 23 21 23 21 |
|
|
|
|
|
|
4 |
|
|
|
|
|
|
Отже, перша тетрада не множиться. Друга тетрада зсувається на 3 розряди вліво і зберігається, потім та сама тетрада зсувається на 1 розряд влівоі додаєтьсядозбереженоїізновузберігається.Даліз третьоютетрадою виконуютьсятакі саміпроцедури, Алепослідовнодварази, аз четвертою– трирази. Усіотриманірезультатипотетраднододаютьіотримують числоу двійковомукоді.
Приклад 6.9. Переведемо число 2510 0010 0101D у двійкову систему числення. Другу тетраду зсуваємо на 3 розряди вліво, одержуємо0001 0000. Цюсамутетрадузсуваємона 1розряд влівоідодаємозотриманоюраніше.
+0001 0000
0000 0100
+0001 0100
0000 0101 (перша тетрада)
0001 1001 = 2510
Переведення з двійкової системи у Д1 –код може здійснюватися різнимиспособами.Зокрема, длянизкипослідовнихопераційнаддвійковим
111
зображенням числа може бути використана процедура ділення на 10102 1010 цілихдвійкових чисел. Десяткові цифриодержуються послідовноодна заодною,починаючиз старшогодесятковогорозряду. Длядробових чисел ця операція видозмінюється так, щоб уразі множення на число 10102 можна булоботримативідповідніцифри десятковихдробів.
Є простіший спосіб переведення – це зсув вліво двійкового числа стільки разів, скільки розрядів удвійковомучислі. Необхіднопередбачити коригування утих тетрадах, значення яких буде перевищувати 10102 , або виникнепотетрадне перенесення.
Приклад6.10. Переведемочисло 1100012 4910 укод Д1 .
|
Дія, що |
|
|
Старша |
|
|
|
|
Молодша |
|
110001 |
|
|||
|
виконується |
|
тетрада |
|
|
|
|
тетрада |
|
|
|||||
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1) |
Зсув вліво |
|
|
|
|
|
|
|
|
|
|
|
1 |
10001 |
|
2) |
Зсув вліво |
|
|
|
|
|
|
|
|
|
1 |
|
1 |
0001 |
|
3) |
Зсув вліво |
|
|
|
|
|
|
|
|
1 |
1 |
|
0 |
001 |
|
4) |
Зсув і коригування: |
|
|
|
|
|
1 |
1 |
0 |
|
0 |
01 |
|
||
|
+ 0110 |
|
|
|
|
|
|
0 |
1 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Результат після |
коригу- |
|
|
|
1 |
|
0 |
0 |
1 |
|
0 |
01 |
|
||
вання |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5) |
Зсув вліво |
|
|
|
1 |
0 |
|
0 |
1 |
0 |
|
0 |
1 |
|
|
6) |
Зсув вліво |
|
|
1 |
0 |
0 |
|
1 |
0 |
0 |
|
1 |
|
|
|
|
Відповідь: |
0100 1001D 4910 . |
|
|
|
|
|
|
|
|
|
|
|||
|
Алгоритми переведення чисел з двійкової системи численния у Д - |
кодінавпакиможутьбутиреалізованісхемнимиабопрограмнимизасобами.
Контрольні запитання та завдання
1.Якподають двійковічислаудвійково-десятковійсистемі?
2.Якіформатиіснують дляподаннядвійково-десятковихчисел?
3.Щотаке ”кодпрямогозаміщення” удвійково-десятковому-коді?
4.Як формується код тетради удвійково-десятковому числі? Наведіть приклади.
5.Яківаговікомбінаціїрозрядівтетрадвідоміуподаннідвійково-десят- ковихчисел?
6.Зазначтеособливості Д -кодів.
7. Якіє особливості, притаманні Д -кодам, уразідодаванні?
8.Якстворюєтьсяобернений коддвійково-десятковогочисла?
9.Якстворюєтьсядоповнювальнийкоддвійково-десятковогочисла?
10.Якподаютьвід’ємнічислаудвійково-десятковомукоді?
11.Сформулюйтеправила додаванняівідніманнячисел у Д -кодах.
12.Як виконується операціямноження у Д -кодах?
13.Яквиконуєтьсяоперація діленняу Д -кодах?
112 |
113 |
ДОДАТКИ
Додаток 1
ПОНЯТТЯ ПРО СПЕЦІАЛЬНІ СИСТЕМИ ЧИСЛЕННЯ
1. Різновиди двійкових систем числення
Двійкова система числення – це система числення, у якій для зображення чисел використовують два символи і вага розрядів у якій змінюєтьсяза законом 2 n (де n – довільнецілечисло).
З визначення випливає, що для зображення чисел можуть бути використанінетількисимволи0, 1,алеісимволи1, -1 або0, -1.
Для зручності надалі символ -1 будемо зображати як 1 , двійкову систему, уякій використовують ці символи – називати системою 1,1 .
Розглянемоцю систему. Якщодля ряду
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
Ad |
id i |
and |
n |
an 1d |
n 1 |
a1d |
1 |
a0d |
0 |
a 1d |
1 |
|
|
|
|
i 1 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a 2d 2 |
... a md m , |
|
|
|
|
(д-1) |
||||
де Ad |
– довільне числоусистемі числення з основою d ; |
|
|
|
|||||||||
i |
– коефіцієнти рядуабоцифри системи числення; |
|
|
|
|
i n, n 1, n 2,...,1,0, 1,..., m 1, m – номер розряду цілої ( n ) або дробової ( m )частиничисла.
Приймемо, що ai набуває значення 1 або 1 , то якщо d 2 число
9910 запишетьсяувигляді A 9910 111 1 1 1 12 .
Система 1,1 відрізняєтьсявіднатуральноїдвійковоїсистемитим,що середсимволів,щовикористовуються,відсутнійнуль. Цяобставинаробить неможливимподанняусистемі 1,1 деякихчиселувиглядікінцевоїмножини. Водночас, існують числа , які не мають єдиного зображення, наприклад,
число1 можебути подане увигляді:
1 1 |
1 |
|
1 |
... |
1 |
|
10000...0 |
11...1 2 |
k |
2 |
k |
2 |
0 |
, |
(д-2) |
|
|
|
|
|
|
||||||||||
|
|
|
k |
k |
k |
|
|
|
|
|
|
|
де k 1,2,..., n . 114
Співвідношення (д-2) виражає зв’язок між натуральною двійковою системоюі системою 1,1 .Неможливістьподатиускінченомувиглядідеякі цілі і дробові числа, наприклад 2010 11 1 1 1, 111...2 , приводить до використаннянескінченнихдробів,щозумовлюєподанняцихчиселусистемі1,1 з деякоюпохибкою.
Дляотримання скінченогоподанняякпарних, такінепарнихчиселу системі 1,1 польським вченим І. Баньковським був запропонований таий записчисел:
n |
|
|
|
A1,1 ai 2i |
2 1 |
, |
(д-3) |
i 1
де ai 1,1 .
Приклад. Д-1. Перевести число A2 100101 усистему 1,1 . Використовуючиспіввідношення(д-2),переведеннязводятьдозаміни
комбінацій 001 і 01 комбінаціями відповідно 1 1 1 і 11 . Відповідь:
A 111 1 1 1 .
Для переведення чисел у систему 1,1 за методом Баньковського необхідно враховувати, що переведення непарного числа здійснюють за правилом (д-2), а потім у розряд i 1 записують одиницю. Переводячи парне числойого спочаткуперетворюють унепарне додаванням одиниці у молодшийрозрядітількипісляцьогопереводятьусистему 1,1 заправилом (д-1) як непарне число. Потім до отриманого результату у розряд i 1
записують 1 .
Приклад Д-2. Перевестидосистеми 1,1 двійковечисло A2 110002 . Відповідно до правила Баньковського це число перетворюємо у
непарнечисло11001. Післяцьогозамінюємоузображеннічислакомбінацію
001на комбінацію 11 1 ідописуємоурозрядпіслякомицифру 1 .Відповідь:
A1,1 1111 1,1.
Надлишковасистемачисленнязосновою d – цесистема,уякійдля запису чиселвикористовуютькількістьсимволівбільшу,ніж d , наприклад,
надлишковадвійкова системаіз символами0, 1, 1 абонадлишковатрійкова
система ізсимволами 2,1 ,0, 1, 2.
Надлишкова двійкова система пов’язана із звичайною двійковою системоюспіввідношенням:
115
|
k |
2i |
2k 1 21 |
|
|
|
|
111...1 |
|
100...0 |
|
. |
(д-4) |
||
1 |
|||||||
|
|
|
|
|
|
|
|
k |
i 1 |
|
|
|
|
|
|
Формула(д-4)даєзмогуперейтивідоднієїсистемидоіншої,наприклад,
A 1111 0 0 0 1 1 0 0 0 1 0 0 0 1 .
У надлишковій двійковій системі одні й ті самі числа можна подати декількома способами, тобто A 0, 0 111 0 0 11 0, 1 0 0 1 0 0 110, 1 0 0 1 0 1 0 1 . Цей приклад показує, що, переходячи до надлишкової системи, можна зменшитикількістьодиницьузображеннічисла.
Надлишковістьсистемичислення,щохарактеризуєтьсясиметричністю символів, часто дає змогу спростити виконання арифметичних дій.
Наприклад, надлишковудвійковусистемучислення використовують удеяких алгоритмах пришвидчення операції множення.(наприклад, алгоритм Бута).
2. Трійкова врівноважена система числення
Увагу конструкторів обчислювальних машин привертає не тільки двійкова система числення. У шістдесяті роки у Радянському Союзі була побудованаіуспішноексплуатуваласяЕОМ“Сетунь”,уосновіарифметичних дійякоїлежалатрійковаврівноважена системачислення.
Якзазначалосяурозділі2.2.1, трійковасистема численнямаєнавіть кращіекономічні показники,ніждвійкова система числення.
Уцій системіоснова d 3 , а цифрамиє0, 1і 1 (або0,1,-1).
ПрикладиД-3. 1 0 1 1 3 1 33 0 32 1 31 1 30 2310 ;
1 1 1 0 13 1 34 1 33 1 32 0 31 1 30 4610 ;
1 1 0 1 3 1 33 1 32 0 31 1 30 1910 .
Число,щопочинаєтьсязцифри„1”, завждидодатне,а число,першою цифроюякогоє“1 ”–завждивід’ємне. Дляпозначеннявід’ємноївеличини дочисланепотрібноприєднуватидодатковий знак(мінус).Це прикладсистеми числення, у якій під час виконання дій над від’ємними і додатними числамине потрібновикористовуватище іправила обробкизнаків.
Додавання і множення у цій системі ґрунтуються на таблицях дій з цифрами.
116
|
|
|
|
|
|
|
|
ТаблицяД-1. |
|
|
|
|
|
|
|
Таблиця Д-2. |
||||||||||||
|
|
1 |
|
0 |
|
|
|
|
|
|
|
1 |
|
0 |
|
|
|
|||||||||||
1 |
||||||||||||||||||||||||||||
|
|
|
|
|
1 |
|||||||||||||||||||||||
1 |
1 |
|
|
|
1 |
0 |
|
1 |
1 |
|
0 |
|
|
|
||||||||||||||
1 |
||||||||||||||||||||||||||||
|
|
|
|
1 |
||||||||||||||||||||||||
0 |
|
|
|
|
|
0 |
|
|
|
|
|
|
0 |
0 |
|
0 |
|
0 |
||||||||||
1 |
|
1 |
||||||||||||||||||||||||||
|
|
|
0 |
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
0 |
|
1 |
||||||
|
1 |
|
|
|
1 |
|
|
1 |
|
1 |
1 |
|
|
Приклади:Д-4.
111 013 |
10 113 |
11013 |
||
+ 11 11 |
+ 1 11 |
|
+ 111 |
|
|
3 |
3 |
3 |
|
1 0 0 0 13 |
1 1 1 1 3 |
1 0 01 3 |
||
11 3 |
1 01 3 |
111 3 |
||
1 |
13 |
11 |
3 |
1 1 3 |
+ 11 |
+ 1 01 |
|
+ 111 |
|
11 |
|
10 1 |
|
111 |
1 1 3 |
11 113 |
1 0 013 |
Відзначимо,щоурезультатаходержаніякдодатні,таківід’ємнічисла, аленіякихправил знаківнезастосовувалося.
Конструкторів комп’ютерів у цій системі привабила ще одна особ- ливість–простота отриманняпротилежногочисла.Длятого, щободержати число, протилежне заданому, достатньо усі цифри “1” первинного числа
замінити на цифри “1 ”, а усі цифри “1 ” – на число“1”. Приклад Д-5. Початковечисло 11 011 3 5610 .
Число, протилежне йому: 110 113 5610 .
Ця простота отримання протилежних чисел полегшує віднімання. Замістьвіднімання потрібновиконуватидодаванняз протилежним числом, утворити яке дуже просто.
Особливості цієї системи числення настільки значні, що інженерні пошуки у створенні трійкових комп’ютерів не можна вважати такими, що закінчилися.
3.Системи числення з від’ємною основою
УроботахК.Шеннонабулопоказано, щоусистемічисленнязосновою d 1 і символами 0, 1,..., d 1 можна подати будь-яке дійсне число,
117
длячогосправедливийвираз (д-1). Якщодеякечислоподаєтьсяусистеміз цілочисловою від’ємною основою, то таке подання буде єдиним для усіх чисел, крім чисел, щодорівнюють X :
|
|
X 1 |
d 2 |
|
rd k 1, |
|
|
d 1 |
|||
|
|
|
|
||
де d – основа системи числення (d 0 ); |
|||||
r i |
k –будь-які цілічисла. |
|
|
|
|
|
Насправді,для системичисленняз основою d 2 десятковечисло |
||||
X 1 |
3 |
може бути подане нескінченими дробами увигляді: |
|||
|
|
|
|
|
0,010101...;
X 2 1,101010.
Двійкову систему числення з основою d 2 , у якій використовуютьсясимволи0, 1,назвемо”мінус-двійковою”системоючислення.Ця системадаєзмогуподатиякдодатні, таківід’ємнічисла (табл.Д-3.).
Зтаблицівидно, щометодипереведеннядесяткових чиселусистему числення з основою d 2 аналогічні дометодів переведення, щорозгля-
далися у розділі 2, але під час переведення десяткових чисел необхідно враховуватитаке:уразівикористанняметодупослідовногоділеннянаоснову нової системи усі залишки від ділення на кожному кроці повинні бути додатними числами, які не перевищують абсолютного значення нової основи d . Це правило поширюється і на переведення правильних дробів методом послідовного множення на основу d , де цілі частини дробів, що з’являються,такожповиннібутидодатнимичислами,значення якихменше відвеличини d.
Таблиця Д-4
Десяткове |
Двійковий еквівалент |
число |
для d = –2 |
|
|
0 |
000000 |
1 |
000001 |
|
|
-1 |
000011 |
|
|
|
Продовженнятабл.Д-4 |
|
|
|
|
+5 |
000101 |
|
-5 |
001111 |
|
+10 |
001010 |
|
-10 |
011110 |
|
+15 |
010011 |
|
-15 |
110001 |
|
+21 |
010101 |
|
-21 |
111111 |
|
|
|
|
Приклад Д-6. Перевести десятковечисло A 21 умінус-двійковусистему числення методом ділення на основусистеми (d2 2 ).
21: 2 10 |
(залишок=1) |
10 : 2 5 |
(залишок=0) |
5 : 2 2 |
(залишок=1) |
2 : 2 1 |
(залишок=0) |
1–неділитьсяна–2 без остачі. Відповідь: A 2110 10101 2 .
Увипадкупереведенняправильнихдробів(абодробовоїчастинизмішаногочисла)необхідно, щобдрібнакожномукроцізадовольняввимозі:
| d | |
A |
|
1 |
|
або |
|
2 |
A |
1 |
(д-5) |
||||
|
|
d |
|
1 |
||||||||||
|
|
|
|
|
|
|
||||||||
| d | 1 |
|
|
|
3 |
3 |
|
де A – дріб, який переводять усистемучислення з основою d 2 . Якщообмеження (д-5)не виконується,тодідріб A подаютьувигляді
A 1 ,де повинналежатиувказанихмежах.
ПрикладД-7. Перевестидесятковийдріб A 0,625 умінус-двійковусистему численняз точністюдотрьохзнаків післякоми.
Рішення:Цейдріб незадовольняєнерівності(д-5). Перетворимоїїдо вигляду 0,625 1 0,375 .
-0,375 -2
0,750 – нерівність (д-5) не задовольняється;
118 |
119 |