Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОФК

.pdf
Скачиваний:
70
Добавлен:
12.02.2016
Размер:
965.02 Кб
Скачать

5.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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]