Печатать книгуПечатать книгу

§ 25. Кадзіраванне лікавых даных

Сайт: Профильное обучение
Курс: Інфарматыка. 10 клас (Павышаны ўзровень)
Книга: § 25. Кадзіраванне лікавых даных
Напечатано:: Гость
Дата: Воскресенье, 5 Май 2024, 09:06

25.1. Перевод дробных и смешанных чисел

Разгледзім перавод правільнага дзесятковага дробу ў любую іншую пазіцыйную сістэму лічэння.

Для пераводу дзесятковага дробу F у сістэму лічэння з асновай q ( F10 → Fqнеабходна F памножыць на q, затым дробавую частку здабытку зноў памножыць на q і г. д., да таго часу, пакуль дробавая частка здабытку не стане роўнай нулю або пакуль не будзе дасягнута патрэбная дакладнасць уяўлення F у сістэме лічэння q (вызначана колькасць лічбаў у запісе выніку).

Схема пераводу дзесятковага дробу ў двайковую сістэму лічэння выглядае наступным чынам:

Пры паўторы значэнняў дробавай часткі (правы слупок табліцы) паўтаральную групу лічбаў у запісе цэлых частак (левы слупок табліцы) трэба запісаць як перыяд дробу.

У прыкладзе 25.1 Ювыкананы пераводы  (F10  Fq) дзесятковых дробаў у пазіцыйную сістэму лічэння з асновай q ( F10  Fq).  

Для змешаных лікаў перавод  (F10  Fqвыконваецца асобна для цэлай і дробавай часткі (прыклад 25.2).

У сітуацыі пераводу дробаў  Zp  Zq, калі асновы сістэм лічэння (p і  q) з’яўляюцца ступенямі двойкі, двайковую сістэму лічэння зручна выкарыстоўваць для пераводу як прамежкавую па схеме Zp  Z2 → Zq. У гэтым выпадку падзел лічбаў у запісе ліку на групы пачынаецца з нулявога разраду і выконваецца гэтак жа, як і пры пераводзе цэлых лікаў (прыклад 25.3). Пры гэтым разрады ў запісе лікаў нумаруюцца з 0, і лічба ў нулявым разрадзе адпавядае адзінкам. Нумарацыя разрадаў узрастае ўлева ад нулявога разраду і спадае ўправа, г. зн. у дробавай частцы ліку нумарацыя разрадаў адмоўная.

Алгарытм пераводу дробавых і змешаных лікаў з сістэмы лічэння з асновай p у сістэму лічэння з асновай 10 (Zp  Z10 ), гэтак жа як для цэлых лікаў, выцякае са спосабу ўяўлення ліку ў сістэме лічэння з асновай p (прыклад 25.4).

Прыклад 25.1. Перавод правільнага дзесятковага дробу ў іншыя сістэмы лічэння.

1)     

2)     

3)     

 4)     

 0,91610 ≈ 0,22((з гранічнай абсалютнай хібнасцю 3–4).

Прыклад 25.2. Перавод змешанага ліку з дзесятковай сістэмы лічэння ў сістэму лічэння з іншай асновай.

41,62510 → х16

4110 = 2916

41,62510 = 29,А16

Прыклад 25.3. Перавод Z8  Z2 → Z16.

362,538 = 011¢110¢010,101¢011 = 0¢1111¢0010,1010¢1100 = F2,AB16

Прыклад 25.4. Перавод змешанага ліку з сістэмы лічэння з асновай p у сістэму лічэння з асновай 10.

Для пераводу неабходна:

  1. Уявіць лік у выглядзе сумы разрадных складаемых па ступенях p.
  2. Выканаць арыфметычныя аперацыі ў дзесятковай сістэме лічэння.

Перавядзём у дзесятковую сістэму лічэння шаснаццацярычны лік  29,А16:

begin mathsize 14px style 29 comma A subscript 16 space equals space 2 space times 16 to the power of 1 space plus space 9 space times space 16 to the power of 0 space plus space A space times space 16 to the power of – 1 end exponent space equals space 32 space plus space 9 space 10 over 16 space equals space 41 comma 625 subscript 10 end style

25.2. Выкананне арыфметычных дзеянняў у розных пазіцыйных сістэмах лічэння

Правілы выканання арыфметычных дзеянняў (складання, аднімання, множання і дзялення) у дзесятковай сістэме лічэння добра вядомыя. Гэтыя ж правілы выкарыстоўваюцца ў дачыненні да выканання арыфметычных дзеянняў і ў іншых пазіцыйных сістэмах лічэння.

У прыкладзе 25.5 разгледжаны правілы выканання паразрадных арыфметычных дзеянняў у двайковай сістэме лічэння.

Разгледзім алгарытмы выканання кожнага з арыфметычных дзеянняў у пазіцыйных сістэмах лічэння з адвольнай асновай р.

Складанне

Каб у сістэме лічэння з асновай p атрымаць суму S двух лікаў A і B, трэба падсумаваць лічбы, якія іх утвараюць, па разрадах i ад малодшага разраду да старэйшага па наступных правілах:

  1. Каліai + bi < p, то , si = ai + bi значэнне (i + 1)-га разраду не змяняецца.
  2. Каліai + bi ≥ p, то, si = ai + bi – p, значэнне (i + 1)-га рразраду павялічваецца на 1. Гэта звязана з тым, што  адзінак i-га разраду адпавядае адной адзінцы ( i + 1)-га разраду, а ў кожным разрадзе не можа знаходзіцца больш за (p – 1) адзінак.

Прыклад 25.6. Скласці лікі 11112 і 1012.

  1. Складваем значэнні ў нулявых разрадах складаемых: 1 + 1 = 102. Запісваем 0, а 1 пераносім у першы разрад: 1 + 1 = 102
  2. У першых разрадах складваем:
    1 + 0 = 1  і дабаўляем 1 з нулявога разраду. Атрымліваем 1 + 0 + 1 = 102. Запісваем 0, а 1 пераносім у другі разрад.
  3. Складваем значэнні ў другіх разрадах: 1 + 1 + 1 = 3(112), 3 ≥ 2, значыць, запісваем 1, а 1 пераносім у трэці разрад.
  4. Вылічваем у трэцім разрадзе: 1 + 1 = 2. Паколькі 2 ≥ 2, то запісваем 0, а 1 пераносім у чацвёрты разрад.

Упрыкладзе 25.7 выканана складанне двайковных змешаных лікаў.

Прыклад 25.8. Скласці лікі 63548 і 7438.

  1. Вылічваем: 4 + 3 = 7.
  2. Складваем: 5 + 4 = 9. 9 ≥ 8, значыць, запісваем 1 (паколькі 9 – 8 = 1), а 1 пераносім у другі разрад.
  3. Вылічваем: 3 + 7 = 10. Дабаўляем 1 з першага разраду 10 + 1 = 11.  11 ≥ 8, значыць, запісваем  3 (11 – 8 = 3 ), а 1 пераносім у трэці разрад.
  4. У трэцім разрадзе: 6 + 1 = 7.

Прыклад 25.9. Скласці лікі 5B416 і C5216.

  1. У нулявым разрадзе: 4 + 2 = 6.
  2. Вылічваем: B(11) + 5 = 16. 16 ≥ 16, значыць, запісваем  0 (16 – 16 = 0), а 1 пераносім у другі разрад.
  3. Складваем: 5 + C(12) = 17. Дабаўляем 1 з другога разраду: 17 + 1 = 18. 18 ≥ 16, значыць, запісваем 2 (18 – 16 = 2), а 1 пераносім у трэці разрад.

Адніманне

Каб у сістэме лічэння з асновай  атрымаць рознасць R двух лікаў A і  ( A > B), трэба вылічваць рознасці лічбаў, якія іх утвараюць, па разрадах ад малодшага да старэйшага па наступным правіле:

  1.  Каліai  ≥  bi, то ri = ai – bi, значэнне ў (i + 1 )-м разрадзе не змяняецца.
  2. Калі ai  <  bi, то ri = p + ai – bi, то значэнне ў (i + 1 )-разрадзе памяншаецца на 1. Пры гэтым, калі ai = 0, то займаем адну разрадную адзінку (роўную аснове сістэмы лічэння p) у (i + 1)-м разрадзе і працягваем займаць да бліжэйшага да i-га старшага разраду (уключна), дзе ai ≠ 0.

Прыклад 25.10. Знайсці рознасць лікаў 10002 и 112.

  1. У нулявым разрадзе: 0 < 1. Займаем у першым разрадзе. Паколькі ў двух наступных разрадах запісаны 0, то працягваем займаць да трэцяга разраду, дзе запісана 1. Атрымліваем  2 – 1 = 1 (102 – 12 = 12). У вынік запісваем 1.
  2. У першым разрадзе пасля таго, як занялі, засталося 1 (2(102) – 1). Аднімаем: 1 – 1 = 0. У вынік запісваем 0.
  3. У другім разрадзе засталося 1. Аднімаем: 1 – 0 = 1. У вынік запісваем  1.
  4. У трэцім разрадзе застаецца 0.

Прыклад 25.11. Знайсці рознасць лікаў 74508 і 7368.

  1. У нулявым разрадзе:  0 < 6. . Займаем у першым разрадзе 8(108). Аднімаем: 8 – 6 = 2. У вынік запісваем  2.
  2. У першым разрадзе засталося 4. Аднімаем: 4 – 3 = 1. У вынік запісваем  1.
  3. У другім разрадзе: 4 < 7. Займаем у трэцім разрадзе 8. Вылічваем: 8 + 4 – 7 = 5. У вынік запісваем 5.
  4. У трэцім разрадзе застаецца 6, што і запісваем у вынік.

У прыкладзе 25.12 разгледжана адніманне лікаў у шаснаццацярычнай сістэме лічэння, якое выконваецца па аналагічным алгарытме.

Множанне

Каб у сістэме лічэння з асновай p атрымаць здабытак М ліку A і ліку  B < p, трэба вылічыць здабытак лічбаў ліку А па разрадах ад малодшага да старшага і ліку В у адпаведнасці з правіламі:

  1. Каліai · b < p, то  mi = ai · b і значэнне ў (i + 1)-м разрадзе не змяняецца.
  2. Каліai · b < p, то  mi = ai · b modp, а значэнне ў ( i + 1 )-м разрадзе павялічваецца на  ai · b divp.

Прыклад 25.13. Знайсці здабытак лікаў 12123 і 23.

  1. Вылічваем: 2 · 2 = 4. Паколькі 4 ≥ 3, у вынік запісваем  4 mod 3 = 1. Значэнне ў першым разрадзе павялічваем на   4 div 3 = 1.
  2. Вылічваем: 1 · 2 + 1 = 3, 3 ≥ 3, значыць, у вынік запісваем 3 mod 3 = 0, а другі разрад павялічваем на 3 div 3 = 1.
  3. Вылічваем: 2 .  2 + 1 = 5. У вынік запісваем 5 mod 3 = 2. Трэці разрад павялічваем на 5 div 3 = 1.
  4. Паўтараем п. 2. У трэцім разрадзе выніку запісваем 0, а ў чацвёртым  — 1.

У прыкладах 25.14 і 25.15 па аналагічным алгарытме выканана множанне мнагазначнага ліку на адназначны лік у іншых сістэмах лічэння.

Множанне мнагазначнага ліку на мнагазначны лік выконваецца слупком. Пры гэтым два множнікі размяшчаюцца адзін пад адным так, каб разрады лікаў супадалі (знаходзіліся ў адным слупку).

У прыкладах 25.16 і 25.17 выканана множанне мнагазначнага ліку на мнагазначны лік.

*Дзяленне

Аперацыю дзялення нельга звесці да паразрадных аперацый над лічбамі, якія складаюць лік. Дзяленне лікаў у сістэме лічэння з адвольнай асновай p выконваецца гэтак жа, як і ў дзесятковай сістэме лічэння. А гэта значыць, што пры выкананні дзялення ўжываюцца правілы множання і аднімання лікаў у сістэме лічэння з асновай p. У адрозненне ад іншых арыфметычных дзеянняў дзяленне выконваецца, пачынаючы са старшага разраду дзялімага.

Прыклад 25.18. Знайсці дзель лікаў 1010102 і 1112.

  1. Параўноўваем значэнне ў самым старшым разрадзе і дзельнік. Калі дзельнік большы за значэнне ў дадзеным разрадзе, то разглядаем гэта значэнне і значэнне ў наступным разрадзе як лік. Паўтараем аперацыю да моманту, калі атрыманы лік зраўняецца або перавысіць значэнне дзельніка ( 1 <  111, 10 < 111, 101 < 111, 1010 > 111).
  2. Падбіраем такі лік (1), пры якім здабытак дзельніка і гэтага ліку (111) будзе максімальна блізкім па значэнні (але не большым) да ліку, атрыманага ў п. 1. Запісваем гэты лік у дзель першым.
  3. Аднімаем здабытак (п. 2) ад ліку, утворанага значэннямі выбраных разрадаў  (1010 – 111).
  4. Астачу пішам пасля рысы  (11).
  5. Зносім значэнне наступнага разраду да астачы (1) і правяраем, атрыманы лік (111) большы за дзельнік ці роўны яму. Калі не, то зносім значэнне яшчэ аднаго разраду да таго часу, пакуль не ўтворыцца лік, большы за дзельнік ці роўны яму, пры гэтым не забываем запісваць нулі ў дзель.
  6. Прарабляем усё вышэйпералічанае да таго часу, пакуль лічбы ў дзеліве не скончацца ці ў астачы не атрымаецца лік, меншы за дзельнік.

Прыклад 25.19. Знайсці дзель лікаў 33518 і 1638.

  1. Параўноўваем:1 <  163, 13 < 163, 133 < 163. 1335 > 163.
  2. Падбіраем: 6 · 163 = 1262 < 1335.
  3. Аднімаем: 1335 – 1262 = 53.
  4. Зносім 1 і атрымліваем  531 > 163.
  5. Падбіраем: 3 .  163 = 531.
  6. Аднімаем: 531 – 531 = 0.

Прыклад 25.20. Найти частное чисел 8D2F6C16 и DF16.

  1. Параўноўваем: 8 < DF, 8D < DF, 8D2 > DF.
  2. Падбіраем: А . DF = 8B6 < 8D2.
  3. Аднімаем: 8D2 – 8B6 = 1C.
  4. Зносім F і атрымліваем 1CF > DF.
  5. Падбіраем: 2 . DF = 1BE < 1CF.
  6. Аднімаем: 1CF – 1BE = 11.
  7. Зносім 6 і атрымліваем  116 > DF.
  8. Подбираем: 1 . DF = DF.
  9. Аднімаем: 116 – DF = 37.
  10. Зносім C і атрымліваем  37C > DF.
  11. Падбіраем: 4 . DF = 37C.
  12. Аднімаем: 37C – 37C = 0.

У камп’ютарных устройствах выкананне любога дзеяння заснавана на выкарыстанні найпрасцейшых мікрааперацый — складанне і зрух (аперацыя аднімання зводзіцца да аперацыі складання). Гэта дазваляе мець адзінае арыфметыка-лагічнае ўстройства для выканання аперацый, звязаных з апрацоўкай даных.

Прыклад 25.5. Правілы двайковай арыфметыкі.

1. Складанне.

2. Адніманне.

3. Множанне.

Прыклад 25.6. Складанне цэлых лікаў у двайковай сістэме лічэння.

11112 + 1012 = x2

Адказ: 101002

Прыклад 25.7. Складанне змешаных лікаў у двайковай сістэме лічэння.

101,10012 + 1,11112 = x2

Адказ: 111,12

Прыклад 25.8. Складанне лікаў у васьмярычнай сістэме лічэння.

63548 + 7438 = x8

Адказ: 73178

Прыклад 25.9. Складанне лікаў у шаснаццацярычнай сістэме лічэння.

5B416 + C5216 = x16

Адказ: 120616

Прыклад 25.10. Адніманне лікаў у двайковай сістэме лічэння.

10002 – 112 = x2

Адказ: 1012

Прыклад 25.11. Адніманне лікаў у васьмярычнай сістэме лічэння.

74508 – 7368 = x8

Адказ: 65128

Прыклад 25.12. Адніманне лікаў у шаснаццацярычнай сістэме лічэння.

21B116 – AFE16 = x16

Адказ: 16B316

Прыклад 25.13. Множанне мнагазначнага ліку на адназначны лік у трайковай сістэме лічэння.

12123 . 23 = x3

Адказ: 102013

Прыклад 25.14. Множанне мнагазначнага ліку на адназначны лік у васьмярычнай сістэме лічэння.

40328 . 78 = x8

Адказ: 342668

Прыклад 25.15. Множанне мнагазначнага ліку на адназначны лік у шаснаццацярычнай сістэме лічэння.

623216 . A16 = x16

Адказ: 3D60816

Прыклад 25.16. Множанне лікаў у двайковай сістэме лічэння.

101012 . 1012 = x2

Адказ: 11010012

Прыклад 25.17. Множанне лікаў у пятнаццацярычнай сістэме лічэння.

6AE15 . 3B15 = x15

Паразраднае множанне  на B:

B(11) . E(14) = 154 = 10 . 15 + 4;
B(11) . A(10) + 10 = 120 = 8 . 15 + 0;
B(11) . 6 + 8 = 74 = 4 . 15 + E(14).

Паразраднае множанне  на 3:

. E(14) = 42 = 2 . 15 + C(12);
. A(10) + 2 = 32 = 2 . 15 + 2;
. 6 + 2 = 20 = 1 . 15 + 5.

Паразраднае складанне:

4;
0 + C = C;
2 + E(14) = 16 = 1 . 15 + 1;
4 + 5 + 1 = A(10);
1.

Адказ: 1A1C415

Прыклад 25.18. Дзяленне лікаў у двайковай сістэме лічэння.

1010102 : 1112 = x2

Поразрядное вычитание:

[1]0 – 1 = 1;
[1]0 – 1 = 1;
1 – 1 = 0 – незначащий;
0  – незначащий.

Адказ: 1102

Прыклад 25.19. Дзяленне лікаў у васьмярычнай сістэме лічэння.

133518 : 1638 = x8

Поразрядное умножение на 6:

. 3 = 18 = 2 . 8 + 2;
. 6 + 2 = 38 = 4 . 8 + 6;
. 1 + 4 = 10 = 1 . 8 + 2.

Поразрядное вычитание:

5 – 2 = 3;
8 + 3 = 11; 11 – 6 = 5.

Зносім з наступнага разраду.
1.

Поразрядное умножение на 3:

. 3 = 9 = 1 . 8 + 1;
. 6 + 1 = 19 = 2 . 8 + 3;
. 1 + 2 = 5.

Адказ: 638

Прыклад 25.20. Дзяленне лікаў у шаснаццацярычнай сістэме лічэння.

8D2F6C16 : DF16 = x16

Паразраднае множанне  на A:

A(10) . F(15)  = 150 = 9 . 16 + 6;
A(10) . D(13)  + 9 = 139 = 8 . 16 + B(11).

Паразраднае адніманне (8D2 – 8B6):

[16]2 – 6 = 16 + 2 – 6 = C(12);
D(13) – 1 – B(11) = 1.

Паразраднае множанне  на 2:

. F(15) = 30 = 1 . 16 + E(14);
. D(13) + 1 = 27 = 1 . 16 + B(11).

Паразраднае адніманне  (1CF – 1BE):

F(15) – E(14) = 1;
C(12) – B(11) = 1;
1 – 1 = 0 – нязначны.

Паразраднае адніманне  (116 – DF):

[16]6 – F(15) = 16 + 6 – 15 = 7;
[16] – D(13) = 3.

Паразраднае множанне  на 4:

. F(15) = 60 = 3 . 16 + C(12);
. D(13) + 3 = 55 = 3 . 16 + 7.

Адказ: A21416

Пытанні да парагарфу

1. Як перавесці правільны дзесятковы дроб у іншую сістэму лічэння?

2. Як перавесці змешаны лік з дзестковай сістэмы лічэння ў любую іншую сістэму лічэння?

3. Які алгарытм выкарыстоўваецца пры пераводзе змешанага ліку з сістэмы лічэння з любой асновай у дзесятковую сістэму лічэння?

4. Якія правілы двайковай арыфметыкі?

5. Як выконваецца аперацыя складання лікаў у любой пазіцыйнай сістэме лічэння?

6. Як выконваецца аперацыя аднімання лікаў у любой пазіцыйнай сістэме лічэння?

7. Як выконваецца аперацыя множання лікаў у любой пазіцыйнай сістэме лічэння?

8. Правілы выканання якіх арыфметычных дзеянняў выкарыстоўваюцца пры выкананні дзялення ў любой пазіцыйнай сістэме лічэння

Практыкаванні

    

1Перавядзіце лікі ў дзесятковую сістэму лічэння:

  1. 11001,012; 1001101,112
  2. 120,213; 203,3214
  3. 456,148; 615,718
  4. BD5,8C16; ABC,4E16

2. Вызначыце колькасць адзінак у двайковым запісе лікаў:

12,25; 22,75; 47,3125.

3. Перавядзіце лікі з дзесятковай сістэмы лічэння ў названую.

  1. 32,25; 418,75 → Z8.
  2. 159,5; 175,09375 → Z16.
  3. 45,75; 21,625 → Z4.
  4. 13,68; 37, 448 → Z5.
4. Запоўніце табліцу, выканаўшы перавод лікаў у розныя сістэмы лічэння:

Двайковая с/л

Васьмярычная с/л

Дзесятковая с/л

Шаснаццацярычная с/л

11011,101

 

 

 

 

155,3

 

 

 

 

77,375

 

 

 

 

6F,A

5.  Перавядзіце дзесятковыя дробы ў названую сістэму лічэння з вызначэннем перыяду:

  1. 0,1; 0,75 → Z2.
  2. 0,5; 0,09375 → Z8.
  3. 0,9; 0,625 → Z16.
  4. 0,68; 0, 448 → Z3.

6. Перавядзіце дроб  0,36 → Z2 → Z8→ Z16 , пакінуўшы ў выніку названую колькасць лічбаў:

Сістэма лічэння

Колькасць лічбаў пасля коскі.

2-7

8-4

16-3

7. Вылічыце.

  1. 110012 + 1012
  2. 11110,112 + 10011,012
  3. 100112 - 1012
  4. 11011,1012 – 1111,112
  5. 7708 + 2368
  6. B0916 + 7FA16
  7. 10346,78 + 56,48
  8. A,B16 + E,F16
  9. 7508 – 2368
  10. B0916 – 7FA16
  11. 403,58 – 64,78
  12. D,116 – B,9216

8. Вылічыце значэнне сумы, вынік запішыце ў выглядзе дзесятковага ліку.

  1. 10112 + 178 + 1E16.
  2. 10102 + 238 + E916.

9. Вылічыце значэнне рознасці, вынік запішыце ў выглядзе васьмярычнага ліку.

  1. A716 – 110102.
  2. 101112 – 3D16.

10. Вылічыце значэнне выразаў, вынік запішыце ў выглядзе шаснаццацярычнага ліку.

  1. 2068 + AF16 – 1012.
  2. 10112 + 218. 1216.
  3. A16. (101102 – 148).
  4. 2568 + 10110,12. (608 + 1210) – 1F16.

11. Вылічыце.

  1. 11012 . 112
  2. 1101000011012 : 1012
  3. 5738 . 458
  4. 102168 : 328
  5. B0916 . DA16
  6. 1425016 : 3916
  7. 16438 : 168
  8. B933,116 : A1D16