Пример OnLine перевода десятичного числа в восьмеричную систему счисления сервисом www.reshinfo.com
Ваше число будет переведено в восьмеричную систему OnLine и бесплатно
Задача:
Решение:
Так как исходное число содержит ненулевые целую и дробную части, а для перевода целых и дробных чисел используются разные алгоритмы, то мы переведем, сначала целую часть числа, затем дробную и в конце синтезируем полное число.
1) Переводим целую часть : 649
Разделим 649 на восемь ( 8 — это основание системы счисления). Делить будем с остатком, частное запишем в столбец «Част.», а остаток в столбец «Ост.». Затем полученное частное снова разделим на восемь и новое частное и остаток также распределим по столбцам (см. ниже). Повторять деление будем до тех пор, пока последнее частное не окажется меньше восьми.
Теперь мы можем записать 649 в восьмеричной системе счисления. Для этого в старший (самый левый) разряд числа запишем последнее частное, а в следующие, по порядку, разряды запишем все полученные выше остатки, беря их снизу вверх. То есть, в самом младшем разряде оказывается самый верхний остаток.
И так, целая часть: 64910 = 1211 8
2) Переводим дробную часть : 0.0625
Умножим дробную часть числа 0.0625 на восемь. Затем дробную часть полученного числа снова умножим на восемь и так далее. Повторять умножение будем до тех пор, пока последняя дробная часть не обратится в ноль, либо не исчерпается разрядная сетка машины (в нашем случае 16 восьмеричных знаков в дробной части).
После последнего умножения получено целое число (дробная часть равна нулю). Процесс умножения прекращаем.
Теперь мы можем записать 0.0625 в восьмеричной системе счисления. Целая часть у нас равна нулю, а цифры в дробной части (слева на право) это есть целые части наших произведений (сверху вниз). То есть, в самом младшем разряде оказывается целая часть последнего произведения.
И так, дробная часть: 0.062510 = 0.04 8
3) Синтезируем исходное число : 649.0625 как композицию знака, целой и дробной частей.
Ответ: 649.062510 = 1211.04 8
Перевод дробных чисел из одной системы счисления в другую
Перевод дробных чисел из одной системы счисления в другую
После того, как я сделал несколько калькуляторов для перевода между разными системами счисления — вот список от первой до последней версии, от самого простого к сложному: Перевод числа в другие системы счисления, Перевод из десятичной системы счисления, Перевод из одной системы счисления в другую — в комментариях стали периодически спрашивать — а что же, мол, дробные числа, как же их переводить? И когда спросили больше трех раз, я таки решил изучить этот вопрос.
Результатом стал калькулятор, который вы видите ниже, он умеет переводить и дробные числа в том числе. Как водится, для любознательных под калькулятором немного теории.
Перевод дробных чисел из одной системы счисления в другую
Теперь теория. Я, честно говоря, думал, что вопрос довольно сложный, но при ближайшем рассмотрении все оказалось проще простого. Надо было только держать в голове тот факт, что речь идет о позиционных системах счисления.
В чем тут суть? Рассмотрим на примере десятичного числа 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 в двоичный вид при использовании шести разрядов после запятой.
Вес крайнего правого разряда (самого младшего разряда) называется разрешением (resolution) или точностью (precision), и определяет наименьшее неравное нулю число, которое может быть представлено данным числом разрядов. Для нашего примера это . При этом максимально возможная погрешность представления числа, как нетрудно сообразить, не превышает половины этого веса, или 0.0078125. Так что для 0.8 мы имеем еще и не самую плохую погрешность.
Десятичные дроби и смешанные числа в разных системах счисления.
Перевод целых чисел из одной системы счисления в другую обычно не вызывает проблем. А вот необходимость перевести десятичную дробь или смешанное число (число с целой и дробной частью) из системы в систему часто ставит в тупик даже сильных учеников.
1. Перевод смешанного числа в десятичную систему счисления из любой другой.
Для перевода смешанного числа в десятичную систему из любой другой следует пронумеровать разряды числа, начиная с нуля, справа налево от младшего целого разряда. Разряды дробной части нумеруются слева направо от -1 в убывающем порядке. Теперь представим число в виде суммы произведений его цифр на основание системы в степени разряда числа и ответ готов.
Пример 1.
Переведите число 105,4 из восьмеричной системы в десятичную.
Пронумеруем целые разряды числа справа налево от 0, дробные – слева направо от -1 :
Посчитаем сумму произведений цифр числа на 8 (основание системы) в степени разряда числа:
2. Перевод десятичных дробей из десятичной системы счисления в любую другую.
Для перевода десятичной дроби из десятичной системы в любую другую следует умножать дробь, а затем дробные части произведений, на основание новой системы пока дробная часть не станет равной 0 или до достижения указанной точности. Затем целые части выписать, начиная с первой.
Пример 2
Переведите десятичное число 0,816 в двоичную систему с точностью до сотых.
Умножаем дробь 0,816, а затем дробную часть произведения (0,632) на 2 и выписываем целые части, начиная с первой:
Пример 3.
Переведите десятичное число 0,8125 в восьмеричную систему.
Умножаем дробь 0,8125, а затем дробную часть произведения (0,5) на 8 и выписываем целые части, начиная с первой:
3. Перевод смешанных чисел из десятичной системы счисления в любую другую
Если необходимо перевести смешанное число из десятичной системы в любую другую, следует перевести целую и дробную части, а затем записать, разделив десятичной запятой.
Пример 4.
Сколько единиц в двоичной записи десятичного числа 14,125?
Переведем целую часть числа в двоичную систему:
Переведем дробную часть числа в двоичную систему: