Перевод дробных чисел из одной системы счисления в другую
для оставшейся дробной части операцию умножения с выделением целой и дробной частей повторять, пока в дробной части не останется 0, или не будет достигнута желаемая точность. Появляющиеся при этом целые будут цифрами новой дроби
записать дробь в виде последовательности цифр после ноля с разделителем в порядке их появления .
Пример. Переведем число 0,36 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную:

Из двоичной и шестнадцатеричной систем счисления (.. из любой) — в десятичную. В этом случае рассчитывается полное значение числа по формуле (раскладываем по степеням основания системы счисления), затем коэффициенты ai принимают десятичное значение в соответствии с таблицей и подсчитывается значение полученного выражения.
Для чисел, имеющих как целую, так и дробную части, перевод из десятичной системы счисления в другую осуществляется отдельно для целой и дробной частей по правилам, указанным выше.
На слайде приведена сводная таблица переводов чисел из одной СС в другую.


Арифметические операции в позиционных системах счисления
Рассмотрим основные арифметические операции: сложение, вычитание, умножение и деление. Правила выполнения этих операций в десятичной системе хорошо известны — это сложение, вычитание, умножение столбиком и деление углом. Эти правила применимы и ко всем другим позиционным системам счисления. Только таблицами сложения и умножения надо пользоваться особыми для каждой системы.
Таблицы сложения легко составить, используя Правило Счета.
Сложение в двоичной системе

Сложение в восьмеричной системе

Сложение в шестнадцатиричной системе

При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево.
Пример 1. Сложим числа 15 и 6 в различных системах счисления.



Проверка. Преобразуем полученные суммы к десятичному виду:
101012 = 2 4 + 2 2 + 2 0 = 16+4+1=21,
258 = 2 . 8 1 + 5 . 8 0 = 16 + 5 = 21,
1516 = 1 . 161 + 5 . 160 = 16+5 = 21.
Пример 2. Сложим числа 15, 7 и 3.



110012 = 2 4 + 2 3 + 2 0 = 16+8+1=25,
318 = 3 . 8 1 + 1 . 8 0 = 24 + 1 = 25,
1916 = 1 . 16 1 + 9 . 16 0 = 16+9 = 25.
Пример 3. Сложим числа 141,5 и 59,75.




Ответ: 141,5 + 59,75 = 201,2510 = 11001001,012 = 311,28 = C9,416
Проверка. Преобразуем полученные суммы к десятичному виду:
11001001,012 = 2 7 + 2 6 + 2 3 + 2 0 + 2 -2 = 201,25
311,28 = 3 . 8 2 + 1 . 8 1 + 1 . 8 0 + 2 . 8 -1 = 201,25
C9,416 = 12 . 16 1 + 9 . 16 0 + 4 . 16 -1 = 201,25
Перевод чисел из одной системы счисления в другую онлайн
С помощю этого онлайн калькулятора можно перевести целые и дробные числа из одной системы счисления в другую. Дается подробное решение с пояснениями. Для перевода введите исходное число, задайте основание сисемы счисления исходного числа, задайте основание системы счисления, в которую нужно перевести число и нажмите на кнопку «Перевести». Теоретическую часть и численные примеры смотрите ниже.
Результат уже получен!
Перевод целых и дробных чисел из одной системы счисления в любую другую − теория, примеры и решения
Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:
| число | 6 | 3 | 7 | 2 |
| позиция | 3 | 2 | 1 | 0 |
Тогда число 6372 можно представить в следующем виде:
Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.
Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:
| число | 1 | 2 | 8 | 7 | . | 9 | 2 | 3 |
| позиция | 3 | 2 | 1 | 0 | -1 | -2 | -3 |
Тогда число 1287.923 можно представить в виде:
1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 .
В общем случае формулу можно представить в следующем виде:
где Ц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 |
Перевод чисел из одной системы счисления в другую
Для перевода чисел с одной системы счисления в другую, проще всего сначала перевести число в десятичную систему счисления, а затем, из десятичной системы счисления перевести в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.
Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:
Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:




Пример 3. Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:





Здесь A -заменен на 10, B — на 11, C— на 12, F — на 15.
Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления нужно переводить отдельно целую часть числа и дробную часть числа.
Целую часть числа переводится из десятичной СС в другую систему счисления — последовательным делением целой части числа на основание системы счисления (для двоичной СС — на 2, для 8-ичной СС — на 8, для 16-ичной — на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.
Пример 4. Переведем число 159 из десятичной СС в двоичную СС:
| 159 | 2 | ||
| 158 | 79 | 2 | |
| 1 | 78 | 39 | 2 |
| 1 | 38 | 19 | 2 |
| 1 | 18 | 9 | 2 |
| 1 | 8 | 4 | 2 |
| 1 | 4 | 2 | 2 |
| 0 | 2 | 1 | |
| 0 |
Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111. Следовательно можно записать:
Пример 5. Переведем число 615 из десятичной СС в восьмеричную СС.
| 615 | 8 | ||
| 608 | 76 | 8 | |
| 7 | 72 | 9 | 8 |
| 4 | 8 | 1 | |
| 1 |
При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147(см. Рис. 2). Следовательно можно записать:
Пример 6. Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.
| 19673 | 16 | ||
| 19664 | 1229 | 16 | |
| 9 | 1216 | 76 | 16 |
| 13 | 64 | 4 | |
| 12 |
Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 — D. Следовательно наше шестнадцатеричное число — это 4CD9.
Далее рассмотрим перевод правильных десятичных дробей в двоичную СС, в восьмеричную СС, в шестнадцатеричную СС и т.д.
Для перевода правильных десятичных дробей (вещественное число с нулевой целой частью) в систему счисления с основанием s необходимо данное число последовательно умножить на s до тех пор, пока в дробной части не получится чистый нуль, или же не получим требуемое количество разрядов. Если при умножении получится число с целой частью, отличное от нуля, то эту целую часть не учитывать (они последовательно зачисливаются в результат).
Рассмотрим вышеизложенное на примерах.
Пример 7. Переведем число 0.214 из десятичной системы счисления в двоичную СС.
| 0.214 | |
| x | 2 |
| 0 | 0.428 |
| x | 2 |
| 0 | 0.856 |
| x | 2 |
| 1 | 0.712 |
| x | 2 |
| 1 | 0.424 |
| x | 2 |
| 0 | 0.848 |
| x | 2 |
| 1 | 0.696 |
| x | 2 |
| 1 | 0.392 |
Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011.
Следовательно можно записать:
Пример 8. Переведем число 0.125 из десятичной системы счисления в двоичную СС.
| 0.125 | |
| x | 2 |
| 0 | 0.25 |
| x | 2 |
| 0 | 0.5 |
| x | 2 |
| 1 | 0.0 |
Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:
Пример 9. Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.
| 0.214 | |
| x | 16 |
| 3 | 0.424 |
| x | 16 |
| 6 | 0.784 |
| x | 16 |
| 12 | 0.544 |
| x | 16 |
| 8 | 0.704 |
| x | 16 |
| 11 | 0.264 |
| x | 16 |
| 4 | 0.224 |
Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:
Пример 10. Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.
| 0.512 | |
| x | 8 |
| 4 | 0.096 |
| x | 8 |
| 0 | 0.768 |
| x | 8 |
| 6 | 0.144 |
| x | 8 |
| 1 | 0.152 |
| x | 8 |
| 1 | 0.216 |
| x | 8 |
| 1 | 0.728 |
Пример 11. Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:
Пример 12. Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим:
Перевод правильной десятичной дроби из одной системы счисления в другую
Для перевода правильной десятичной дроби F в систему счисления с основанием q необходимо умножить записанное в той же десятичной системе, затем дробную часть полученного произведения снова умножить на это число и т.д., до тех пор пока дробная часть очередного произведения не станет равной нулю либо не будет достигнута требуемая точность изображения числа F в q-ичной системе. Представлением дробной части числа в новой системе счисления будет последовательность целых частей полученных произведений, записанных в порядке их получения и изображенных одной q-ичной цифрой. Если требуемая точность перевода числа Fсоставляет к знаков после запятой, то предельная абсолютная погрешность при этом равняется q _(к+1) /2.
Перевод целых десятичных чисел в недесятичную систему счисления осуществляется последовательным делением десятичного числа на основание той системы, в которую оно переводится, до тех пор, пока не получится частное меньшее этого основания. Число в новой системе записывается в виде остатков деления, начиная с последнего.
Для перевода правильной дроби из одной системы счисления в другую необходимо эту дробь последовательно умножать на основание той системы , в которую она переводится, перемножаются только дробные части. Дробь в новой системе записывается в виде целых частей получающихся произведений, начиная с первого. Например:
0,6875 0,67510 = 0,100112
При переводе неправильных десятичных дробей необходимо пользуясь рассмотренными правилами выполнить отдельно перевод целой и дробной частей.
Перевод дробных чисел из одной системы счисления в другую
После того, как я сделал несколько калькуляторов для перевода между разными системами счисления — вот список от первой до последней версии, от самого простого к сложному: Перевод числа в другие системы счисления, Перевод из десятичной системы счисления, Перевод из одной системы счисления в другую — в комментариях стали периодически спрашивать — а что же, мол, дробные числа, как же их переводить? И когда спросили больше трех раз, я таки решил изучить этот вопрос.
Результатом стал калькулятор, который вы видите ниже, он умеет переводить и дробные числа в том числе. Как водится, для любознательных под калькулятором немного теории.
Перевод дробных чисел из одной системы счисления в другую
Теперь теория. Я, честно говоря, думал, что вопрос довольно сложный, но при ближайшем рассмотрении все оказалось проще простого. Надо было только держать в голове тот факт, что речь идет о позиционных системах счисления.
В чем тут суть? Рассмотрим на примере десятичного числа 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 мы имеем еще и не самую плохую погрешность.