Переклад чисел з десяткової системи числення в довільну
Перевести число з десяткової системи в систему з основою p - означає знайти коефіцієнти у формулі (2). Іноді це легко зробити простим підбором. Наприклад, нехай потрібно перевести число 23,5 у вісімкову систему. Неважко помітити, що 23,5 = 16 +7 +0,5 = 2.8 +7 +4 / 8 = 2.81 +7 · 80 +4 · 8-1 = 27,48. Зрозуміло, що не завжди відповідь настільки очевидний. У загальному випадку застосовується спосіб переказу окремо цілої і дробової частин числа.
Для перекладу цілих чисел застосовується наступний алгоритм (отриманий на підставі формули (1)):
1. Знайдемо приватне і залишок від ділення числа на p. Залишок буде черговий цифрою ai (j = 0,1,2 ...) запису числа в новій системі числення.
2. Якщо приватне дорівнює нулю, то переклад числа закінчений, інакше застосовуємо до приватного пункт 1.
Зауваження 1. Цифри ai в запису числа нумеруються справа наліво.
Зауваження 2. Якщо p> 10, то необхідно ввести позначення для цифр з числовими значеннями, більшими або рівними 10.
Приклад:
Перевести число 165 у семерична систему числення.
165:7 = 23 (залишок 4) => a0 = 4
23:7 = 3 (залишок 2) => a1 = 2
3:7 = 0 (залишок 3) => a2 = 3
Випишемо результат: a2a1a0, тобто 3247.
Виконавши перевірку за формулою (1), переконаємося в правильності перекладу:
3247 = 3.72 +2 · 71 +4 · 70 = 3.49 +2 · 7 +4 = 147 +14 +4 = 165.
Для перекладу дрібних частин чисел застосовується алгоритм, отриманий на підставі формули (2):
1. Помножимо дробову частину числа на p.
2. Ціла частина результату буде черговий цифрою am (m = -1, -2, -3 ...) запису числа в новій системі числення. Якщо дробова частина результату дорівнює нулю, то переклад числа закінчений, інакше застосовуємо до неї пункт 1.
Зауваження 1. Цифри am в запису числа розташовуються зліва направо в порядку зростання абсолютного значення m.
Зауваження 2. Зазвичай кількість дрібних розрядів в новому записі числа обмежується заздалегідь. Це дозволяє виконати наближений переклад із заданою точністю. У разі нескінченних дробів таке обмеження забезпечує кінцівку алгоритму.
Приклад 1:
Перевести число 0,625 в двійкову систему числення.
0,625 · 2 = 1,25 (ціла частина 1) => a-1 = 1
0,25 · 2 = 0,5 (ціла частина 0) => a-2 = 0
0,5 · 2 = 1,00 (ціла частина 1) => a-3 = 1
Отже, 0,62510 = 0,1012
Виконавши перевірку за формулою (2), переконаємося в правильності перекладу:
0,1012 = 1.2 -1 +0 · 2-2 +1 · 2-3 = 1/2 +1 / 8 = 0,5 +0,125 = 0,625.
Приклад 2:
Перевести число 0,165 у четверичной систему числення, обмежившись чотирма четверичной розрядами.
0,165 · 4 = 0,66 (ціла частина 0) => a-1 = 0
0,66 · 4 = 2,64 (ціла частина 2) => a-2 = 2
0,64 · 4 = 2,56 (ціла частина 2) => a-3 = 2
0,56 · 4 = 2,24 (ціла частина 2) => a-4 = 2
Отже, 0,16510 "0,02224
Виконаємо зворотний переклад, щоб переконатися, що абсолютна похибка не перевищує 4-4:
0,02224 = 0.4 -1 +2 · 4-2 +2 · 4-3 +2 · 4-4 = 2/16 +2 / 64 +2 / 256 = 1/8 +1 / 32 +1 / 128 = 21/128 = 0,1640625
| 0,1640625-0,165 | = 0,00094 <4-4 = 0,00390625
Переклад чисел з однієї довільної системи в іншу
В цьому випадку спочатку слід виконати переклад числа в десяткову систему, а потім з десяткової в необхідну.
Особливим способом виконується переклад чисел для систем із кратними основами.
Нехай p і q - заснування двох систем числення. Будемо називати ці системи системами числення з кратними підставами, якщо p = qn або q = pn, де n - натуральне число. Так, наприклад, системи числення з основами 2 та 8 є системами числення з кратними основами.
Нехай p = qn і потрібно перевести число з системи числення з основою q в систему числення з основою p. Розіб'ємо цілу і дробову частини запису числа на групи по n послідовно записаних цифр вліво і вправо від коми. Якщо кількість цифр у записі цілої частини числа не кратно n, то треба дописати зліва відповідну кількість нулів. Якщо кількість цифр у записі дробової частини числа не кратно n, то нулі дописуються справа. Кожна така група цифр числа в старій системі числення буде відповідати одній цифрі числа в новій системі числення.
Приклад:
Переведемо 1100001,1112 в четверичной систему числення.
Дописавши нулі і виділивши пари цифр, отримаємо 01100001,11102.
Тепер виконаємо переклад окремо кожної пари цифр, користуючись пунктом Переклад чисел з однієї довільної системи в іншу.
012 = 110 = 14
102 = 210 = 24
002 = 010 = 04
012 = 110 = 14
112 = 310 = 34
102 = 210 = 24
Отже, 1100001,1112 = 01100001,11102 = 1201,324.
Нехай тепер потрібно виконати переклад з системи з більшою підставою q, в систему з меншим підставою p, тобто q = pn. В цьому випадку одній цифрі числа в старій системі числення відповідає n цифр числа в новій системі числення.
Приклад: Виконаємо перевірку попереднього перекладу числа.
1201,324 = 1100001,11102 = 1100001,1112
У шістнадцятковій системі є цифри з числовими значеннями 10,11,12, 13,14,15. Для їх позначення використовують перші шість букв латинського алфавіту A, B, C, D, E, F.
Наведемо таблицю чисел від 0 до 16, записаних в системах числення з основами 10, 2, 8 і 16.
Сукупність прийомів та правил найменування й позначення чисел називається системою числення.
Для переводу цілих чисел з однієї системи числення з основою S в іншу з основою S1 потрібно це число послідовно ділити на основу S1 нової системи числення до тих пір, поки не отримаємо частку менше S1. Число у новій системі запишеться у вигляді залишків ділення, починаючи з останнього. Ця остання частка дає цифру старшого розряду у новій системі числення. Ділення виконують у вихідній системі числення. Наприклад, переведення числа 999 з десяткової системи числення в двійкову:
Для переводу правильного дробового числа з однієї системи числення в іншу необхідно цю дріб послідовно помножити на основу тієї системи , в яку вона переводиться, перемножуються тільки дробові частини. Дріб у новій системі записується у вигляді цілих частин добутків, які отримуються , починаючи з першого. Наприклад, переведення дробу 0,35 в двійкову систему:
Для переводу чисел з будь якої системи числення в десяткову необхідно:
старшу цифру вихідного числа помножити на основу старої системи числення та додати наступну цифру вихідного числа;
результат знову помножити на основу старої системи числення та додати наступну цифру вихідного числа;
процес переводу закінчується після додавання останньої найменшої цифри вихідного числа;
для переводу чисел з десяткової системи числення в будь яку необхідно ділити вихідне число на основу нової системи числення до тих пір поки остання частка не стане менше основи нової системи числення. Результат складається з залишків ділення, починаючи з останнього;
для переводу чисел з будь якої системи числення в будь яку необхідно вихідне число перевести в десяткову систему за першим правилом (множенням), отримане десяткове число перевести в шукану систему за другим правилом (ділення).