Реферат: Перетворення кодів з однієї системи числення в іншу
Название: Перетворення кодів з однієї системи числення в іншу Раздел: Рефераты по коммуникации и связи Тип: реферат | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лабораторна робота №2 Тема: Перетворення кодів з однієї системи числення в іншу . Мета : Отримати навички переведення натуральних чисел між системами числення з різними основами. Завдання: Згідно номера по списку в журналі викладача необхідно вибрати десяткове число K із табл. 1. Таблиця 1 – Вихідні дані
Необхідно: перевести взяте з табл. 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) .
Таким чином отримаємо = 23410 = 111010102 = 3528 = EA16 . 2-й спосіб перекодування чисел . Перекодування чисел згідно з даним способом здійснюється за допомогою множення цифр числа на основу системи числення в степені, що відповідає розряду кожної цифри в числі , тобто: (4) Даним способом зручно користуватися при переведенні в десяткову систему числення з інших систем, зважаючи на те, що при цьому використовується десяткова арифметика. Виконаємо перевірку отриманих вище результатів перекодування з десяткової системи числення: Умова 2: = 111010102 = 3528 = EA16 , . Перевірку здійснимо за три етапи: 1) = 111010102 , 2) = 3528 ,
3) = EA16 ,
Всі три результати однакові і рівні взятому із завдання числу = 23410 . Це свідчить, що пряме перекодування чисел, що було виконано першим способом, дало правильні результати. 3-й спосіб перекодування чисел . Даний спосіб доцільно використовувати при перекодуванні чисел між системами числення з основою , де (тобто основи систем, з якої і в яку переводиться число, повинні бути кратні 2). Стосовно поставленої умови задачі, що вирішується, за допомогою цього способу може бути здійснено пряме перекодування числа попарно між двійковою, вісімковою та шістнадцятковою системами, а також виконано перевірку отриманих результатів. Умова 3: = 111010102 , . Для виконання вказаного перекодування необхідно вміти поставити у відповідність будь-якій цифрі алфавітів та деяку послідовність цифр алфавіту . З цією метою далі приведена табл. 3, в якій кожній цифрі із систем числення з основами (, звідки ) та (, звідки ) відповідає послідовність із цифр двійкового алфавіту (-розрядне двійкове число). Таблиця 3 – Відповідність цифр алфавітів та цифрам алфавіту .
* У більшості випадків нулі в старших розрядах двійкових чисел ігноруються (наприклад, справедлива наступна рівність 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 . Виконана перевірка показала правильність отриманих результатів. |