Як переказувати числа в двійкову систему числення, Навчання
Моя відповідь: «Та дуже просто!». Зараз у кожному підручнику інформатики зустрічається така тема, як «Переклад чисел з однієї системи числення в іншу», і особлива увага приділяється саме двійковій системі числення. Але, незважаючи на те, як добре там все пояснено, мало хто розуміє. І в цій статті я постараюся досить точно і чітко пояснити все.
Отже, що таке системи числення? Системою числення називають спосіб запису чисел за допомогою заданого набору спеціальних знаків чи цифр. У двійковій системі числення всього два таких знаки, це 0 і 1. Двійкова система числення використовується у обчислювальних машинах. Вибір двійкової системи пояснюється лише тим, що електронні елементи, у тому числі будувалися і будуються ЕОМ, можуть лише у двох добре помітних стійких робочих станах. Словом, ці елементи видаються нам ролі вимикачів. А як ми всі знаємо, вимикач може бути увімкнений або вимкнений. Третього не дано. Один із станів вимикача позначається 0, а інший - 1.
Отже, перейдемо безпосередньо до нашої статті. Як переводити числа з однієї системи числення до іншої? Розгорнутий запис двійкового числа може виглядати так: A = 1 • 2 2 + 0 • 2 1 + 1 • 2 0 + 0 • 2^(-1) + 1 • 2^(-2). (^ - Знак ступеня). А згорнута форма цього числа виглядає вже так: А = 101,01. Загалом у двійковій системі запис числа А, що містить n цілих розрядів і m дробових розрядів числа, виглядає так: А = a (n-1) • 2^(n-1) + a (n-2) • 2^(n-2) +…a (0) • 2 0 + a (-1) • 2^(-1)+…a (-m) • 2^(-m).
Коефіцієнт a (i) у цьому записі є цифрами (0 або 1) двійкового числа, яке в згорнутій формі записується так: A = a (n-1) a (n-2) ... a (0), a ( -1) a (-2)a(-m).
Тепер я надаю вашій увазі алгоритм переведення цілих десяткових чисел у двійкову систему числення.
Нехай А (цд) - ціле десяткове число. Запишемо його у вигляді суми ступенів основи 2 з двійковими коефіцієнтами. У його записі у розгорнутій формі будуть відсутні негативні ступеня основи (числа 2): A (цд) = a (n-1) • 2^(n-1) + a (n-2) • 2^(n -2) + … + a (1) • 2 1 + a (0) • 2 0 .
На першому кроці розділимо число А (цд) на основу двійкової системи, тобто на 2. Приватне від поділу дорівнюватиме: a (n-1) • 2^(n-2) + a (n-2) • 2^(n-3) + … + a (1), а залишок дорівнює a (0).
На другому кроці ціле приватне знову розділимо на 2, залишок від розподілу тепер дорівнює a (1).
Якщо продовжувати цей процес поділу, то після n-го кроку отримаємо послідовність залишків: a (0), a (1), ..., a (n-1).
Легко помітити, що їхня послідовність збігається зі зворотною послідовністю цифр цілого двійкового числа, записаного в згорнутій формі: A (2) = a (n-1) ... a (1) a (0). Таким чином, достатньо записати залишки у зворотній послідовності, щоб отримати потрібне двійкове число.
Тоді сам алгоритм буде наступним: 1. Послідовно виконувати розподіл вихідного цілого десяткового числа та одержуваних цілих приватних на основу системи (на 2) доти, доки не вийде приватний, менший дільник, тобто менше 2. 2. Записати отримані залишки у зворотній послідовності, а зліва додати останнє приватне.
А тепер розглянемо алгоритм переведення правильних десяткових дробів у двійкову систему числення.
Нехай А (дд) - правильний десятковий дріб. У її записі в розгорнутій формі будуть відсутні позитивні ступені підстави (числа 2): A (дд) = a (-1) • 2^(-1) + a (-2) •2(-2) + …
На першому кроці помножимо число A (дд) на основу двійкової системи, тобто на 2. Добуток дорівнює: a (-1) + a (-2) • 2^(-1) + … Ціла частина дорівнюватиме a (-1). На другому кроці дробову частину, що залишилася, знову помножимо на 2, отримаємо цілу частину, рівну a (-2).
Описаний процес необхідно продовжувати доти, поки в результаті множення ми не отримаємо нульову дробову частину або не буде досягнуто необхідної точності обчислень.
І тут легко помітити, що послідовність отриманих чисел збігається з послідовністю цифр дрібного двійкового числа, записаного у згорнутій формі: A(2) = a(-1)a(-2)…
А тепер алгоритм: 1. Послідовно виконувати множення вихідного десяткового дробу та одержуваних дробових частин творів на основу системи (на 2) доти, доки не вийде нульова дробова частина або не буде досягнуто необхідної точності обчислень. 2. Записати отримані цілі частини твору у прямій послідовності.
І насамкінець хотілося б розповісти про переведення чисел із вісімкової та шістнадцяткової систем числення до двійкової.
Для переведення чисел з вісімкової та шістнадцяткової систем числення в двійкову необхідно цифри числа перетворити на групи двійкових цифр. Для переведення з вісімкової системи на двійкову кожну цифру числа треба перетворити на групу з трьох двійкових цифр — тріаду, а при перетворенні шістнадцяткового числа — на групу з чотирьох цифр — зошит. І все, як ви бачите, дуже просто!
Сподіваюся, що ті, хто прочитав мою статтю, зможуть без проблем виконувати операції перекладу, як це роблю я.