Скачать .docx  

Реферат: Перетворення кодів з однієї системи числення в іншу

Лабораторна робота №2

Тема: Перетворення кодів з однієї системи числення в іншу .

Мета : Отримати навички переведення натуральних чисел між системами числення з різними основами.

Завдання:

Згідно номера по списку в журналі викладача необхідно вибрати десяткове число K із табл. 1.

Таблиця 1 – Вихідні дані

№п/п

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Число К

486

317

281

307

436

214

193

325

501

142

398

267

186

469

369

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Приклад

165

205

346

452

374

175

412

159

274

358

245

385

423

253

295

234

Необхідно: перевести взяте з табл. 1 число K між десятковою, двійковою, вісімковою та шістнадцятковою системами числення.

Теоретичні дані:

Перш за все слід відзначити, що найбільш звичною системою числення для людини є десяткова система. Саме вона використовується у повсякденному житті: під час навчання, при розрахунках в магазині, в таксі/маршрутці/трамваї тощо. Крім десяткової системи числення для тих чи інших цілей можуть використовуватися двійкова і кратні до неї – вісімкова та шістнадцяткова – системи числення.

В теорії інформації, а саме в тій її частині, що стосується перетворення кодів з однієї системи числення в іншу, одним із основних є поняття алфавіту (позначається ) з основою .

Алфавіт – це множина цифр , за допомогою яких складається число .

В загальному вигляді поняття алфавіту можна представити у вигляді виразу:

(1)

де загальна кількість цифр алфавіту .

Загальна кількість цифр алфавіту називається основою системи числення .

Існують різноманітні алфавіти, що відрізняються загальною кількістю цифр, які можуть використовуватися при складанні числа.

Для ілюстрації приведемо в табл. 2 вказані характеристики найбільш вживаних систем числення:

Таблиця 2 – Характеристики алфавітів найбільш поширених систем числення

Алфавіт

Множина цифр алфавіту

Основа

двійковий

вісімковий

десятковий

шістнадцятковий

*

* – символи, які позначають в алфавіті цифри, які відповідають десятковим числам 10, 11, 12, 13, 14 та 15 відповідно.

Таким чином, в якості коректних двійкових чисел можна вказати такі: 100111, 111, 0, 10; тоді як число 100211 неможливе, адже в двійковому алфавіті немає цифри "2". З аналогічних причин можливі шістнадцяткові числа 106, E1F, 1BC, 589, проте неможливі 1I6, O04, 3P24.

Основа системи числення деякого числа вказується після нього у вигляді нижнього індексу, наприклад, запис 200910 означає десяткове число 2009 .

Для зручності завдання на перекодування чисел з однієї системи числення в іншу запишемо у вигляді відповідності між їх основами: (пряме перекодування), або (пряме перекодування з подальшою перевіркою).

Для ілюстрації даного положення розглянемо три вирази:

1) = 786110 , = ,

2) = 786110 , = ,

3) = 786110 , = .

Перший вираз слід інтерпретувати так: дано десяткове число 7861, його необхідно перекодувати з десяткової системи числення в двійкову, з якої в вісімкову, а потім число з вісімкової системи – у шістнадцяткову.

Другий вираз передбачає те саме, що і перший вираз, за винятком того, що після кожного прямого перекодування необхідно додатково виконати перевірку зворотне перекодування.

Третій вираз вимагає переведення десяткового числа лише з десяткової системи числення у двійкову, вісімкову та шістнадцяткову, відповідно, з виконанням перевірок після кожного перекодування.

З цифр алфавіту можна скласти велику кількість чисел :

, (2)

де кількість цифр числа .

Порядковий номер цифр числа визначається справа наліво, починаючи з нуля і називається розрядом цифр. Таким чином в числі (2) є розрядів: від 0-го розряду (крайня цифра справа, також називається молодшим розрядом ) до –1-го розряду (крайня цифра зліва, також називається старшим розрядом ). Наприклад, можна розглядати як п’ятирозрядне двійкове число (нуль в старшому розряді можна не писати, тобто ).

Враховуючи, що у числі розрядів (цифр), а в алфавіті є цифр, можна визначити загальну кількість -розрядних чисел як:

(3)

Таким чином, наприклад, різних чотирьохрозрядних чисел в алфавіті можна отримати (адже , =2 та =4), а за допомогою алфавіту – вже чисел тієї ж розрядності.

Питання для самоперевірки засвоєння основних теоретичних положень:

– для числа = 2009 вкажіть кількість розрядів , кількість використаних цифр із алфавіту та основу прийнятої системи числення;

– для вісімкового числа 123456 вкажіть цифри, що знаходяться в першому, в останньому та в -му розрядах;

– вкажіть всі коректні числа із наступного списку, враховуючи множини цифр розглянутих вище алфавітів (див. табл. 2): 202 , 10O2 , 45616 , 10112 , 10118 , 5810 , 5816 , 588 , 1516 , 1616 , AІ9816 , 10116 , 10 , 4СF10 , 4GF16 (увага: можуть бути літери, які схожі на десяткові цифри) ;

– вкажіть коректні чотирирозрядні числа: 00112 , 210FF16 , H2 O, 10218 , 022210 , H1N116, AD1A8 , 5A11F16 , 22222 , 011018 , 17148 , 53C716 ;

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

Вирішення задачі:

Для ілюстрації вирішення поставленої задачі, із табл. 1 вибрано десяткове число 234. З врахуванням викладеного вище матеріалу, умову поставленої задачі можна скорочено зобразити наступним чином:

Умова задачі: = 23410 , .

Розглянемо декілька способів перекодування чисел з однієї системи числення в іншу.

1-й спосіб перекодування чисел .

Перекодування чисел згідно з даним способом здійснюється за допомогою ділення числа на за допомогою арифметики з основою . Цифрами числа в системі числення з основою будуть залишки від ділення. Зручно користуватися цим способом при переведенні з десяткової системи числення () в будь-яку іншу, оскільки використовується десяткова арифметика.

Нижче проілюстрований порядок перекодування чисел з десяткової системи числення в двійкову, вісімкову та шістнадцяткову:

Умова 1: = 23410 , .

Виконаємо дане перекодування в три етапи, при цьому початкове число на цих етапах становить = 23410 :

1) , 2) , 3) .

234

2

ділимо число К

на основу m

234

8

234

16

234

117

2

232

29

8

224

14(Е)

0

116

58

2

2

24

3

10(A)

а 1 =

а 0 =

1

58

29

2

а 0 =

5

а 2 =

а 0 =

а 1 =

0

28

14

2

а 1 =

а 2 =

1

14

7

2

а 3 =

0

6

3

2

а 4 =

1

2

1

а 5 =

1

а 7 =

1 – ознака закінчення розрахунків

а 6 =

порядок запису результату

порядок запису результату

Таким чином отримаємо = 23410 = 111010102 = 3528 = EA16 .

2-й спосіб перекодування чисел .

Перекодування чисел згідно з даним способом здійснюється за допомогою множення цифр числа на основу системи числення в степені, що відповідає розряду кожної цифри в числі , тобто:

(4)

Даним способом зручно користуватися при переведенні в десяткову систему числення з інших систем, зважаючи на те, що при цьому використовується десяткова арифметика.

Виконаємо перевірку отриманих вище результатів перекодування з десяткової системи числення:

Умова 2: = 111010102 = 3528 = EA16 , .

Перевірку здійснимо за три етапи:

1) = 111010102 ,

2) = 3528 ,

3) = EA16 ,

Всі три результати однакові і рівні взятому із завдання числу = 23410 . Це свідчить, що пряме перекодування чисел, що було виконано першим способом, дало правильні результати.

3-й спосіб перекодування чисел .

Даний спосіб доцільно використовувати при перекодуванні чисел між системами числення з основою , де (тобто основи систем, з якої і в яку переводиться число, повинні бути кратні 2).

Стосовно поставленої умови задачі, що вирішується, за допомогою цього способу може бути здійснено пряме перекодування числа попарно між двійковою, вісімковою та шістнадцятковою системами, а також виконано перевірку отриманих результатів.

Умова 3: = 111010102 , .

Для виконання вказаного перекодування необхідно вміти поставити у відповідність будь-якій цифрі алфавітів та деяку послідовність цифр алфавіту . З цією метою далі приведена табл. 3, в якій кожній цифрі із систем числення з основами (, звідки ) та (, звідки ) відповідає послідовність із цифр двійкового алфавіту (-розрядне двійкове число).

Таблиця 3 – Відповідність цифр алфавітів та цифрам алфавіту .

цифри ,

цифри ,

цифра

цифра

цифра

цифра

цифра

цифра

0

000*

0

0000

8

1000

1

001

1

0001

9

1001

2

010

2

0010

A(10)

1010

3

011

3

0011

B(11)

1011

4

100

4

0100

C(12)

1100

5

101

5

0101

D(13)

1101

6

110

6

0110

E(14)

1110

7

111

7

0111

F(15)

1111

* У більшості випадків нулі в старших розрядах двійкових чисел ігноруються (наприклад, справедлива наступна рівність 0000112 = 0112 = 112 ). Таким чином, при тій чи іншій потребі, можна як додавати нулі в старші розряди, так і нехтувати зайвими нулями в старших розрядах двійкового числа.

Для перекодування необхідно, починаючи з 0-го розряду (крайня цифра справа), розбити двійкове число на групи цифр по розрядів в кожній (якщо кількість розрядів двійкового числа не кратна , для зручності можна дописати необхідну кількість нулів в старші розряди цього числа). Далі відбувається заміна кожної групи із двійкових цифр на одну цифру системи числення з основою згідно з наведеною вище табл. 3. Аналогічним чином відбувається зворотне перекодування чисел.

Таким чином, виконаємо перетворення з двійкової системи числення у вісімкову і шістнадцяткову та навпаки:

Умова 3.1: = 111010102 , .

Такі перетворення виконуються за чотири етапи:

1) = 111010102 , (пряме перекодування).

,

де 0112 = 38 , 1012 = 58 , 0102 = 28 (див. табл. 3 враховуючи, що 8 та =3).

2) = 3528 , (перевірка результату першого етапу).

,

де 38 = 0112 , 58 = 1012 , 28 = 0102 (див. табл. 3, враховуючи, що 8 та =3).

3) = 111010102 , (пряме перекодування).

,

де 11102 = Е16 , 10102 = А16 (див. табл. 3 враховуючи, що 16 та =4).

4) = ЕА16 , (перевірка результату третього етапу).

,

де Е16 = 11102 , А16 = 10102 (див. табл. 3 враховуючи, що 16 та =4).

Отримавши навички щойно розглянутого перекодування чисел можна здійснити перекодування чисел з вісімкової системи в шістнадцяткову та навпаки. Це відбувається шляхом виконання перекодування з початкової системи числення в двійкову, а потім в кінцеву систему числення.

Умова 3.2: = 3528 , .

Таким чином, перевід заданого числа = 3528 з вісімкової системи в шістнадцяткову вимагатиме виконання спочатку другого , а потім третього етапів вирішення щойно розглянутої умови 3.1 . Для зворотного перекодування, в свою чергу, потрібно здійснити четвертий та перший етапи вирішення цієї ж умови .

Отже, здійснимо необхідні перекодування в два етапи:

1) = 3528 , (пряме перекодування).

,

де 38 = 0112 , 58 = 1012 , 28 = 0102 , 11102 = Е16 , 10102 = А16 (див. табл. 3).

Нуль в старшому розряді двійкового числа ігнорується.

2) = ЕА16 , (перевірка результату першого етапу).

,

де Е16 = 11102 , А16 =10102 , 0112 = 38 , 1012 = 58 , 0102 = 28 (див. табл. 3).

Висновок:

В процесі вирішення поставленої задачі були отримані навички перекодування натурального числа K = 23410 між системами числення з основами m =2, m =8, m =10 та m =16, що дало наступні результати: 23410 = 111010102 = 3528 = ЕA16 . Виконана перевірка показала правильність отриманих результатів.