Скачать .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 . Виконана перевірка показала правильність отриманих результатів.