Алгоритм перетворення чисел з десяткової системи числення у двійкову

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

Системи числення та мережева адресація

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

Завдання:

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

2. Вивчити системи числення: двійкову, десяткову, шістнадцяткову.

3. Вивчити основні принципи переведення в різні системи числення.

4. Перевести числа згідно варіанту з дестякової системи числення в двійкову та навпаки.

5. Перевести числа згідно варіанту з дестякової системи числення в шістнадцяткову та навпаки.

ТЕОРЕТИЧНІ ВІДОМОСТІ

Система числення складається із символів і правил їхнього використання. Існує безліч систем числення, але найпоширенішою є десяткова, або система числення з базисом 10. Вона використає десять символів - цифри 0, 1, 2.3, 4, 5, 7, 8 і 9. Комбінаціями таких цифр можна виразити всі можливі числові значення.

Комп’ютер приймає й обробляє дані, використовуючи двійкову, або систему числення з базисом 2. У двійковій системі використовуються тільки два символи (0 і 1) замість десяти, використовуваних у десятковій (з базисом 10). Значення кожної цифри визначається числом 2 (базовим числом), піднесеним у степінь позиції (зв'язану зі числомісцем) цифри (2°, 21, 22, 23, 24, і т.д.).

Приклад

10110 = (1х24 = 16) + (0х23 = 0) + (1х22 = 4) + (1x2' = 2) + (0x2° = 0) =

= (16+ 0 + 4 +2 + 0) = 22.

Якщо двійкове число читати зліва направо, то 1 перебуває в позиції 16, 0 - у позиції 8, 1 - у позиції 4, ще одна одиниця- у позиції 2 і 0 - у позиції 1. Додаючи ці числа, одержуємо десяткове число 22. У комп'ютері IP-адреса представляється у вигляді рядка з 32 битов (4 байтів).

Шістнадцяткова система числення використає 16 символів. Комбінацією використовуваних символів можна представити будь-яке число. Оскільки тільки 10 символів можуть бути представлені арабськими цифрами (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), а для шістнадцаткової системи -необхідно на шість символів більше, то додатково використовуються букви: А, В, З, D, Е и F. А представляє десяткове число 10, В — число 11, З — число 12, D — число 13, Е — число 14 .; F -число 15.

Приклад

1А2С = (1х163 = 65536) + (10(А)х162 = 2560) + (2х161 = 32) + (12(С) х 16° = 12) = = (65536 + 2560 + 32 + 12) = 68144.

Алгоритм перетворення чисел з десяткової системи числення у двійкову

Існує безліч способів перетворення десяткових чисел у двійкові. Один з них проілюстрований на мал. У цьому алгоритмі підбираються такі значення степенів двійки, щоб у сумі вони давали конвертоване десяткове число. Показана схема - це один з декількох методів, які найчастіше використовуються на практиці.

Розглянемо проілюстрований спосіб на конкретному прикладі.

Нижче наведена послідовність перетворення числа 168 у двійкову форму.

Етап 1. 128 менше, ніж 168, отже, перший зліва біт двійкового числа дорівнює 1. 168-128 = 40.

Етап 2.64 більше, ніж 40, отже, другий біт дорівнює 0.

Етап 3.32 менше, ніж 40, отже, третій біт зліва дорівнює 1. 40-32 = 8.

Етап 4.16 більше, ніж 8, отже, четвертий зліва біт дорівнює 0.

Етап 5.8 рівняється 8 (отже, можна відняти від залишку ступінь двійки й не одержати від’ємний результат); п'ятий біт дорівнює 1. 8-8 = 0, отже, інші біти праворуч також рівні 0.

Етап 6. У результаті обчислень одержуємо число 10101000 - двійковий еквівалент десяткового числа 168.

За допомогою блок-схеми, зображеної на мал., можна переводити десяткові числа до 255 включно. На виході ми одержимо восьмизнаковое двійкове число, що є достатнім для пертворення десяткових IP-адрес. Більші числа можуть бути переведені у двійкову систему числення з використанням додаткових етапів, алгоритм починається з найбільшого можливого ступеня числа 2, що буде менше даного числа. Наприклад, для пертворення числа 650 необхідно починати вирахування із числа 29 = 512, що в результаті дасть десятизнаковое двійкове число.

Алгоритм перетворення чисел з десяткової системи числення у двійкову - student2.ru

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

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

Приклад

01110000 в десятковве

0x2° = 0

+

0x2' = 0

+

0х22 = 0

+

0х23 = 0

+

1х24=16

+

1х25 = 32

+

1х26 = 64

+

0х27 = 0

(Сума ступенів числа 2, у яких у їх знакомісці стоїть цифра 1.) Як і блок-схема, наведена вище, блок-схема на мал. може бути використана для чисел до 255 включно в десятковій системі числення, що відповідає восьмибітовому двійковому числу. Більші двійкові числа можуть бути перетворені в десяткові з використанням більших ступенів числа 2. Наприклад, у двійковому числі, що складається з 10 бітів, десята цифра буде мати значення 512, а 9-я - 256, якщо в позиції цифри буде стояти 1.


Алгоритм перетворення чисел з десяткової системи числення у двійкову - student2.ru

Перетворення шістнадцяткових чисел у двійкові й навпаки - одне з розповсюджених завдань при роботі з конфігураційними регістрами маршрутизаторів. У маршрутизаторах корпорації Cisco Systems конфігураційний регістр складається з 16 бітів. Таке шістнадцятибітове число може бути представлене у вигляді чотиризначного шістнадцятковго числа, наприклад, 0010000100000010 у двійковій системі числення еквівалентно числу 2102 у шеітнадцятковій.

Щоб перетворити шістнадцяткове число у двійкове, досить окремо перевести кожну цифру в 4 біти. Для перетворення шістнадцяткового числа АС (тобто ОхАС) у двійкове спочатку перетворимо цифру А в двійковий запис 1010, а потім цифру С - в 1100 і об'єднаємо. У підсумку шістнадцяткове число АС представляється двійковим 10101100.

Так, наприклад, точково-десятковий запис 10.15.129.201 при перетворенні її у двійковий еквівалент буде виглядати як 00001010.00001111.10000001.11001001:

10 = 00001010, 15 = 00001111, 129 = 10000001, 201 = 11001001.

У технологіях Ethernet і Token Ring адреса другого рівня складається з 48 бітів, або 6 октетів (один октет дорівнює одному байту). (Oct-від грецького вісім.) Оскільки такі адреси складаються з 6-ти окремих октетів, то їх можна представити у вигляді 12-ти шістнадцяткових чисел. Кожні 4 біти представляються одним шістадцятковим числом (24 = 16).

Замість запису виду

10101010.11110000.11000001.11100010.01110111.01010001

можна скористатися більш коротким записом у шістнадцятковому еквіваленті:

AA.F0.C1.E2.77.51.

А= 1010, А= 1010,

R = 1111, 0=0000,

С =1100, 1=0001,

Е= 1110, 2=0010,

7=0111, 7=0111,

5=0101, 1=0001.

Для спрощення процесу маніпулювання шістнадцятквим записом Мас-адреси крапка ставиться тільки через кожні 4 шістнадцяткових цифри, наприклад AAF0.C1E2.7751.

Найпоширенішим методом позначення в комп'ютерах і програмному забезпеченні шістнадцяткових чисел є додавання символів "Ох" перед самим числом. Отже, якщо де-небудь перед числом стоять зазначені символи, то число є шістнадцятковим, наприклад, запис 0x1234 означає, що це шістнадцяткове число 1234.

Як і інші базисні системи числення (двійкова, десяткова й т.д.), шістнадцяткова система числення ґрунтується на використанні цифр і базису 16, піднесені в степінь позиції числа. Символи, які використовуються в шістнадцятковій системі числення, - це десяткові цифри від 0 до 9 і букви від А до F.

Найпростіше сприймати шістнадцяткові числа як скорочений запис двійкових. Він скорочує 8-бітове число до двох шістнадцяткових цифр, при цьому легше сприймаються довгі рядки бінарних цифр і скорочується місце, необхідне для їхнього запису. Пам’ятайте, що шістнадцятковим числам можуть передувати два символи Ох, які не використовуються в обчисленнях, і число 5D може записуватися як 0x5D.

Наши рекомендации