Как перевести дробное число в двоичную
Перевод из десятичной системы счисления в двоичную
Перед тем как перейти к алгоритму перевода, вспомним алфавит двоичной и десятичной системы счисления:
| Основание | Название | Алфавит |
|---|---|---|
| 2 | Двоичная | 0, 1 |
| 10 | Десятичная | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
Для перевода чисел из десятичной системы в двоичную, воспользуемся соответствующим алгоритмом. Важно заметить, что алгоритм перевода целых и дробных чисел будет отличаться.
Алгоритм перевода целых десятичных чисел в двоичную систему счисления
Пример 1 : перевести десятичное число 123 в двоичную систему счисления
Для наглядности произведем деление «столбиком». Решение будет выглядеть следующим образом:
Исходя из вышеприведенного алгоритма, полученные остатки необходимо записать в обратном порядке.
Алгоритм перевода десятичной дроби в двоичную систему
Пример 2: перевести число 0,123 в двоичную систему.
Решение будет выглядеть следующим образом:
0.123 ∙ 2 = 0.246 (0)
0.246 ∙ 2 = 0.492 (0)
0.492 ∙ 2 = 0.984 (0)
0.984 ∙ 2 = 1.968 (1)
0.968 ∙ 2 = 1.936 (1)
0.936 ∙ 2 = 1.872 (1)
0.872 ∙ 2 = 1.744 (1)
0.744 ∙ 2 = 1.488 (1)
0.488 ∙ 2 = 0.976 (0)
0.976 ∙ 2 = 1.952 (1)
0.952 ∙ 2 = 1.904 (1)
В данном примере можно продолжить вычисления, но зачастую, такой точности будет достаточно.
Перевод дробного десятичного числа в двоичную систему
Для того чтобы перевести десятичное число, содержащее дробную часть, необходимо отдельно перевести целую часть и отдельно дробную.
Пример 3: перевести число 110,625 из десятичной системы в двоичную
Для решения примера потребуется отдельно перевести 110 и отдельно 0,625 из десятичной системы в двоичную, используя вышеизложенные алгоритмы. Таким образом переведя 110, получим:
Перевод десятичной дроби 0,625 выглядит так:
0.625 ∙ 2 = 1.25 (1)
0.25 ∙ 2 = 0.5 (0)
0.5 ∙ 2 = 1 (1)
Теперь осталось соединить результаты перевода. Таким образом: 110.62510=1101110.1012
Обратите внимание, что данный пример наглядно демонстрирует ситуацию, при которой дробная часть стала равной 0 и дальнейшее вычисление закончилось.
Перевод дробных чисел из одной системы счисления в другую
Перевод дробных чисел из одной системы счисления в другую
После того, как я сделал несколько калькуляторов для перевода между разными системами счисления — вот список от первой до последней версии, от самого простого к сложному: Перевод числа в другие системы счисления, Перевод из десятичной системы счисления, Перевод из одной системы счисления в другую — в комментариях стали периодически спрашивать — а что же, мол, дробные числа, как же их переводить? И когда спросили больше трех раз, я таки решил изучить этот вопрос.
Результатом стал калькулятор, который вы видите ниже, он умеет переводить и дробные числа в том числе. Как водится, для любознательных под калькулятором немного теории.
Перевод дробных чисел из одной системы счисления в другую
Теперь теория. Я, честно говоря, думал, что вопрос довольно сложный, но при ближайшем рассмотрении все оказалось проще простого. Надо было только держать в голове тот факт, что речь идет о позиционных системах счисления.
В чем тут суть? Рассмотрим на примере десятичного числа 6.125. Это дробное число в десятичной системе счисления представляется так:
Все просто, не так ли? Та же самая простота сохраняется и при записи дробного числа в любой другой системе счисления. Возьмем, например, горячо любимую каждым программистом двоичную систему и число, например, 110.001. Эта запись есть не что иное как
Да-да, число для примера было выбрано не просто так. То есть, 110.001 в двоичной системе есть 6.125 в десятичной. Принцип, я думаю, ясен.
Есть только одно но — все-таки из-за того, что здесь участвую дроби с разными знаменателями, не всегда одно и тоже число можно одинаково точно выразить в разных системах счисления. Что я имею в виду?
Продолжать можно еще довольно долго, но уже сейчас видно, что 0.8 в десятичной системе это 0.11001100. (дальше очень много цифр) в двоичной. Если честно, то это периодическое число с перидом 1100, так что мы никогда не сможем выразить его точно в двоичной системе счисления. 110011001100. будет продолжаться до бесконечности.
Поэтому перевод дробного числа из одной системы счисления в другую чаще всего дает погрешность. Погрешность эта зависит от того, сколько разрядов мы используем для записи дробной части переведенного числа. Возьмем пример с числом 0.8 и используем для записи его двоичного представления шесть разрядов после запятой — 0.110011. Полученное число вовсе не 0.8, а 0.796875, разница при этом составляет 0.003125. Это и есть наша погрешность перевода десятичного числа 0.8 в двоичный вид при использовании шести разрядов после запятой.
Как перевести дробное число в двоичную
Правила перевода правильных дробей
Напомним, что правильная дробь имеет нулевую целую часть, т.е. у нее числитель меньше знаменателя.
Результат перевода правильной дроби всегда правильная дробь.
Перевод из десятичной системы счисления в двоичную и шестнадцатеричную :
а) исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);
б) в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается – она является старшей цифрой получаемой дроби;
в) оставшаяся дробная часть (это правильная дробь) вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б);
г) процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;
д) формируется искомое число: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.
В данном примере процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.
Пример 2. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.
В данном примере также процедура перевода прервана.
Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.
Расхождение полученного результата с исходным числом (см. пример 1 ) вызвано тем, что процедура перевода в двоичную дробь была прервана.
Таким образом, 0,1101 2 = 0,8125.
Расхождение полученного результата с исходным числом (см. пример 2 ) вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.
Таким образом, 0,D8D 16 = 0,84692.
Перевод из двоичной системы счисления в шестнадцатеричную:
а) исходная дробь делится на тетрады, начиная с позиции десятичной точки вправо. Если количество цифр дробной части исходного двоичного числа не кратно 4, оно дополняется справа незначащими нулями до достижения кратности 4;
Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль:
Перевод из шестнадцатеричной системы счисления в двоичную:
а) каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с таблицей ;
б) незначащие нули отбрасываются.
Отбросим в результате незначащий ноль и получим окончательный ответ: 0,2А 16 = 0,0010101 2
Десятичные дроби и смешанные числа в разных системах счисления.
Перевод целых чисел из одной системы счисления в другую обычно не вызывает проблем. А вот необходимость перевести десятичную дробь или смешанное число (число с целой и дробной частью) из системы в систему часто ставит в тупик даже сильных учеников.
1. Перевод смешанного числа в десятичную систему счисления из любой другой.
Пример 1.
Переведите число 105,4 из восьмеричной системы в десятичную.
Посчитаем сумму произведений цифр числа на 8 (основание системы) в степени разряда числа:
2. Перевод десятичных дробей из десятичной системы счисления в любую другую.
Для перевода десятичной дроби из десятичной системы в любую другую следует умножать дробь, а затем дробные части произведений, на основание новой системы пока дробная часть не станет равной 0 или до достижения указанной точности. Затем целые части выписать, начиная с первой.
Пример 2
Переведите десятичное число 0,816 в двоичную систему с точностью до сотых.
Умножаем дробь 0,816, а затем дробную часть произведения (0,632) на 2 и выписываем целые части, начиная с первой:
Пример 3.
Переведите десятичное число 0,8125 в восьмеричную систему.
Умножаем дробь 0,8125, а затем дробную часть произведения (0,5) на 8 и выписываем целые части, начиная с первой:
3. Перевод смешанных чисел из десятичной системы счисления в любую другую
Если необходимо перевести смешанное число из десятичной системы в любую другую, следует перевести целую и дробную части, а затем записать, разделив десятичной запятой.
Пример 4.
Сколько единиц в двоичной записи десятичного числа 14,125?
Переведем целую часть числа в двоичную систему:
Переведем дробную часть числа в двоичную систему:
Переводы из различных систем счисления
Двоичная система
Система счисления, которая в своем арсенале использует только две цифры, то есть имеющая основание два, называется двоичной или бинарной. В такой системе числа заменяются последовательностью нулей и единиц. Например, десятичное число 134 в двоичном формате выглядит как 10000110. Для того чтобы понять, как это работает, следует придерживаться правил перевода чисел из одной системы счисления в другую.
Рис. 1. Двоичная система счисления.
Перевод целых и дробных чисел из одной системы счисления в любую другую − теория, примеры и решения
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:
| число | 6 | 3 | 7 | 2 |
| позиция | 3 | 2 | 1 | 0 |
Тогда число 6372 можно представить в следующем виде:
Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.
Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:
Тогда число 1287.923 можно представить в виде:
В общем случае формулу можно представить в следующем виде:
где Цn-целое число в позиции n, Д-k– дробное число в позиции (-k), s – система счисления.
Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр <0,1,2,3,4,5,6,7,8,9>, в восьмеричной системе счисления – из множества цифр <0,1,2,3,4,5,6,7>, в двоичной системе счисления – из множества цифр <0,1>, в шестнадцатеричной системе счисления – из множества цифр <0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F>, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.
В таблице Таб.1 представлены числа в разных системах счисления.
| Таблица 1 | |||
|---|---|---|---|
| Система счисления | |||
| 10 | 2 | 8 | 16 |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Почему двоичная система счисления так распространена?
Дело в том, что двоичная система счисления – это язык вычислительной техники. Каждая цифра должна быть как-то представлена на физическом носителе. Если это десятичная система, то придется создать такое устройство, которое может быть в десяти состояниях. Это сложно. Проще изготовить физический элемент, который может быть лишь в двух состояниях (например, есть ток или нет тока). Это одна из основных причин, почему двоичной системе счисления уделяется столько внимания.
Кратко об основных системах счисления
Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.
Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.
Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.
Шестнадцатеричная система счисления. Наиболее распространена в современных компьютерах. При помощи неё, например, указывают цвет. #FF0000 – красный цвет. Для записи числа используются цифры от 0 до 9 и буквы A,B,C,D,E,F, которые соответственно обозначают числа 10,11,12,13,14,15.
Перевод из одной системы счисления в другую
Для того, чтобы перевести это число в двоичную систему счисления, ставим маркер на “Bin” и получаем число “123” в двоичной системе счисления.
Для перевода в восьмеричную систему ставим маркер на “Oct”.
Ну и для перевода в шестнадцатеричную систему ставим маркер на “Hex”.
Все операции взаимозаменяемы. Это значит, что мы можем перевести число из двоичной в шестнадцатеричную, из восьмеричной в двоичную и так далее. Чтобы не спутать системы счисления и знать, какое число записано, после каждого записанного числа снизу ставится его индекс системы счисления. Например:
7ВС16 – значит число записано в шестнадцатеричной системе счисления
10112 – в двоичной системе
4578 – в восьмеричной системе
998510 – в десятеричной системе.
Перевод из двоичной системы в восьмеричную
Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:
Вавилонская десятеричная / шестидесятеричная

Рисунок 1. для единиц,

Рисунок 2. для десятков
Они имели клинообразный вид, поскольку жители Вавилона писали на глиняных табличках палочками треугольной формы. Знаки в записях повторяли определенное количество раз, например:

Рисунок 3.
Перевод 8 – 10
Преобразование чисел из восьмеричного формата в десятичную форму выполняется с использованием правила перевода: целая часть числа последовательно делится на основание новой системы счисления, то есть 8, и остатки от деления записываются начиная с последнего частного в обратном направлении. Например:
246 / 8 = 30 и в остатке 6
30 / 8 = 3 и в остатке 6
3 меньше 8, деление завершено.
Обратный перевод выполняется путем разложения числа в развернутую форму:
3668 = 3*8 2 + 6*8 1 + 6*8 0 = 3*64 + 6*8 + 6*1 = 192 + 48 + 6 = 24610
Перевод целой части числа из десятичной системы счисления в другую систему счисления
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Перевод дробной части числа из десятичной системы счисления в другую систему счисления
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
4. Перевести число 0.12510 в двоичную систему счисления.
Решение: 0.125·2 = 0.25 (0 – целая часть, которая станет первой цифрой результата), 0.25·2 = 0.5 (0 – вторая цифра результата), 0.5·2 = 1.0 (1 – третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).
Ответ: 0.12510 = 0.0012












