
Переведення чисел з однієї системи числення в іншу
Найбільш часто зустрічається системи числення, – це двійкова, шістнадцятирічна і десяткова. Як же пов'язані між собою представлення числа в різних системах числення? Розглянемо різні способи переведення чисел з однієї системи числення в іншу на конкретних прикладах.
Хай потрібно перевести число 567 з десяткової у двійкову систему. Спочатку визначимо максимальну степінь двійки, таку, аби два в цій ступені було менше або рівне вихідному числу. У нашому випадку це 9, оскільки 29=512, а 210=1024, що більше початкового числа. Таким чином, ми отримаємо кількість розрядів результату. Воно дорівнює 9+1=10. Тому результат матиме вигляд 1ххххххххх, де замість х можуть стояти будь-які двійкові цифри. Знайдемо другу цифру результату. Піднесемо двійку до ступеня 9 і віднімемо з вихідного числа: 567-29=55. Залишок порівнянний з числом 28=256. Оскільки 55 менше 256, то дев'ятий розряд буде нулем, тобто результат набере вигляду 10хххххххх. Розглянемо восьмий розряд. Оскільки 27=128>55, то й він буде нульовим.
Сьомий розряд також становиться нульовим. Шуканий двійковий запис числа набуває вигляду 1000хххххх. 25=32<55, тому шостий розряд дорівнює 1 (результат 10001ххххх). Для залишку 55-32=23 справедлива нерівність 24=16<23, що означає рівність одиниці п'ятого розряду. Діючи аналогічно, отримуємо в результаті число 1000110111. Ми розклали дане число по ступенях двійки:
567=1*29+0*28+0*27+0*26+1*25+1*24+0*23+1*22 +1*21+1*20
При іншому способі переведення чисел використовується операція ділення в стовпчик. Розглянемо те ж саме число 567. Розділивши його на 2, отримаємо частку 283 і залишок 1. Проведемо ту ж саму операцію з числом 283. Отримаємо частку 141, залишок 1. Знову ділимо отриману частку на 2, і так до тих пір, поки частка не стане менша дільника. Тепер для того, щоб отримати число в двійковій системі числення, досить записати останню частку, тобто 1, і приписати до нього в зворотному порядку всі отримані в процесі ділення залишки.
Результат, природно, не змінився: 567 в двійковій системі числення записується як 1000110111.
Ці два способи застосовуються при переведенні числа з десяткової системи в систему з будь-якою основою. Для закріплення навиків розглянемо переведення числа 567 в систему числення з основою 16.
Спочатку здійснимо розкладання даного числа по степенях основи. Шукане число складатиметься з трьох цифр, оскільки
162=256 < 567 < 163=4096.
Визначимо цифру старшого розряду.
2*162=512<567<3*162=768,
отже шукане число має вигляд 2хх, де замість х можуть стояти будь-які шістнадцятирічні цифри. Залишається розподілити по наступних розрядах число 55 (567-512).
3*16=48<55<4*16=64,
означає в другому розряді знаходиться цифра 3. Остання цифра дорівнює 7 (55-48). Шукане шістнадцятирічне число дорівнює 237.
Другий спосіб полягає у виконанні послідовного ділення в стовпчик, з єдиною відмінністю в тому, що ділити треба не на 2, а на 16, і процес ділення закінчується, коли частка стає строго меншою 16.
Звичайно, не треба забувати і про те, що для запису числа в шістнадцятирічній системі числення, необхідно замінити 10 на A, 11 на B і так далі.
Операція переведення в десяткову систему виглядає набагато простішою, оскільки будь-яке десяткове число можна представити у вигляді
x = a0*pn + a1*pn-1 + ... + an-1*p1 + an*p0,
де a0 ... an – це цифри даного числа в системі числення з основою р.
Приклад. Переведемо число 4A3F в десяткову систему. За визначенням, 4A3F= 4*163+A*162+3*16+F. Замінивши A на 10, а F на 15, отримаємо 4*163+10*162+3*16+15= 19007.
Мабуть, найпростіше здійснюється переклад чисел з двійкової системи в системи з основою, рівною степеням двійки (8 і 16), і навпаки. Для того, щоб ціле двійкове число записати в системі числення з основою 2n, потрібно
дане двійкове число розбити справа наліво на групи по n-цифр у кожній;
якщо в останній лівій групі виявиться менше за n розрядів, то доповнити її нулями до потрібної кількості розрядів;
розглянути кожну групу, як n-розрядне двійкове число, і замінити її відповідною цифрою в системі числення з основою 2n.
Двійково-шістнадцятирічна таблиця
2-ва |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
16-на |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
2-ва |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
16-на |
8 |
9 |
A |
B |
C |
D |
E |
F |
Двійково-восьмерична таблиця
2-ва |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
8-на |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Завдання
Переведіть в десяткову систему числення:
а) 100011102; б) 123458; в) AA02D34B16.
Порівняйте два числа:
а) 10268 та 21616; б) 111112 та 111113.