Реферат Перетворення кодів з однієї системи числення в іншу
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Лабораторна робота №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, H2O, 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= |
| а0= |
| а2= |
| а0= | | | |||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||
| | | |||||||||||||||||||||||||||||||||
| | а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. Виконана перевірка показала правильність отриманих результатів.