Скачать .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 |
|
|
ділимо число К на основу m |
234 |
8 |
234 |
16 |
|||||||||
234 |
117 |
2 |
232 |
29 |
8 |
224 |
14(Е) |
|||||||||
0 |
116 |
58 |
2 |
2 |
24 |
3 |
10(A) |
а 1 = |
||||||||
|
1 |
58 |
29 |
2 |
|
|
а 2 = |
|
||||||||
а 1 = |
0 |
28 |
14 |
2 |
а 1 = |
|||||||||||
а 2 = |
1 |
14 |
7 |
2 |
|
|||||||||||
а 3 = |
0 |
6 |
3 |
2 |
|
|||||||||||
а 4 = |
1 |
2 |
|
|||||||||||||
а 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 . Виконана перевірка показала правильність отриманих результатів.