[Закрыть]
 
popoff.donetsk.ua
Все проявления, происходящие из тени, человек приписывает анонимному «мировому Злу», потому что боится обнаружить истинный источник нездоровья в себе самом.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - ДонНТУ - Основы дискретной математики - Общая теоретическая справка - Системы счисления - Перевод чисел из десятичной системы счисления в любую другую
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Ваш возраст (не обязательно):

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
Обмен электронных валют
money.dn.ua
Статистика

Перевод чисел из десятичной системы счисления в любую другую

Постоянный адрес статьи

При переводе чисел из десятичной системы счисления в любую другую, всегда отдельно (по разным правилам) переводится целая и дробная части.

Перевод целой части

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

Например, перевод - числа 25 из десятичной системы счисления в двоичную будет выглядеть следующим образом:

Перевод числа из десятичной системы счисления в двоичную

Выписав остатки в обратном порядке, получим 2510=110012.

Если Вы задумаетесь, то можете легко заметить, что при переводе абсолютно любого числа в двоичную систему счисления самый последний остаток (то есть, самая первая цифра в результате) всегда будет равен самому последнему частному, которое оказалось меньше основания той системы счисления, в которую мы переводим число. Поэтому, деление часто останавливают раньше, чем частное станет равным нулю - в тот момент, когда частное станет просто меньше основания. Например:

Перевод числа из десятичной системы счисления в двоичную

Перевод из десятичной системы счисления в любую другую систему счисления производится по абсолютно точно таким же правилам. Вот пример перевода 39310 в шестнадцатеричную систему счисления:

Перевод числа из десятичной системы счисления в шестнадцатеричную

Выписав остатки в обратном порядке, получим 39310=18916.

Нужно понимать, что остатки получаются в десятичной системе счисления. При делении на 16 могут появиться остатки не только от 0 до 9, но также и остатки от 10 до 15. Каждый остаток - это всегда ровно одна цифра в той системе счисления, в которую осуществляется перевод.

Например, если при переводе в шестнадцатеричную систему счисления Вы получили такие остатки (выписаны в порядке, как они должны быть записаны в числе): 10, 3, 15, 7, то в шестнадцатеричной системе счисления этой последовательности остатков будет соответствовать число A3F716 (некоторые по ошибке записывают число как 10315716 - понято же, что это совсем другое число, и что если так делать, то получится, что ни в каком шестнадцатеричном числе не появится цифры от A до F).

Перевод дробной части

При переводе дробной части, в отличие от перевода целой части - нужно не делить, а умножать на основание той системы счисления, в которую мы переводим. При этом каждый раз отбрасываются целые части, а дробные части - снова умножаются. Собрав целые части в том порядке, как они были получены - получается дробная часть числа в нужной системе счисления.

Одна операция умножения даёт ровно один дополнительный знак в системе счисления, в которую осуществляется перевод.

При этом существует два условия завершения процесса:

1) в результате очередного умножения Вы получили ноль в дробной части. Понятно, что дальше этот ноль сколько ни умножай - он всё равно останется нулём. Это означает, что число перевелось из десятичной системы счисления в нужную точно.

2) не все числа возможно перевести точно. В таком случае обычно переводят с некоторой точностью. При этом сначала определяют, сколько знаков после запятой будет нужно - именно такое количество раз и нужно будет выполнить операцию умножения.

Вот пример перевода числа 0.3910 в двоичную систему счисления. Точность - 8 разрядов (в данном случае точность перевода выбрана произвольно):

Перевод дробного числа из десятичной системы счисления в двоичную

Если выписать целые части в прямом порядке, то получим 0.3910=0.011000112.

Самый первый ноль (на рисунке перечёркнут синим) выписывать не нужно - так как он относится не к дробной части, а к целой. Некоторые по ошибке записывают этот ноль после запятой, когда выписывают результат.

Вот так будет выглядеть перевод числа 0.3910 в шестнадцатеричную систему счисления. Точность - 8 разрядов в данном случае точность снова выбрана произвольно:

Перевод дробного числа из десятичной системы счисления в шестнадцатеричную

Если выписать целые части в прямом порядке, то получим 0.3910=0.63D700A316.

При этом Вы, наверное, заметили, что целые части при умножении получаются в десятичной системе счисления. Эти целые части, полученные при переводе дробной части числа следует интерпретировать точно так же, как и остатки при переводе целой части числа. То есть, если при переводе в шестнадцатеричную систему счисления целые части получились в таком порядке: 3, 13, 7, 10, то соответствующее число будет равно 0.3D7A16 (а не 0.31371016, как некоторые иногда ошибочно записывают).

Перевод числа с целой и дробной частью

Чтобы выполнить перевод числа с целой и дробной частью, нужно отдельно перевести целую часть, а отдельно - дробную, и поэтом эти две части записать вместе.

Например, 25.3910=11001.011000112 (переводы целой и дробной части - смотрите выше).

Перевод небольших целых чисел из десятичной системы счисления в двоичную в уме

Поскольку при работе с различными системами счисления, особенно при разработке программ, очень часто возникает необходимость перевода небольших целых чисел, то, вообще говоря, имеет смысл запомнить таблицу соответствия для первых 16 чисел (от 0 до 15).

Но если разобраться, как легко в уме переводить небольшие целые числа от 0 до 15 из десятичной системы счисления в двоичную, то значительную часть таблицы Вы сможете просто вычислять в уме каждый раз, когда это будет нужно. Проделывайте эту операцию много раз, и в какой-то момент Вы сами не сможете понять - Вы уже запомнили таблицу или всё ещё вычисляете.

Итак, чтобы перевести небольшое положительное целое число от 0 до 15 из десятичной системы счисления в двоичную, первое, что нужно понять - это что каждой позиции в двоичном числе соответствует степень двойки. При этом степени двойки для позиций от 0 до 3 запомнить очень просто - это числа 1, 2, 4 и 8:

8421

Далее, десятичное число, которое Вы хотите перевести в двоичную систему счисления, нужно представить в виде суммы чисел 1, 2, 4 и 8, причём каждое число можно использовать не больше одного раза. Если Вы задумаетесь, то поймёте, что это можно сделать только одним-единственным способом.

Когда Вы получили список чисел, которые должны войти в сумму, в позициях, соответствующих этим числам, нужно поставить единички, в остальных - нолики. Например, число 5 - это 4 плюс 1:

8421
0 1 0 1

А число 10 - это 2 плюс 8:

8421
1 0 1 0

Число 15 можно получить только сложив все числа 1, 2, 4, 8:

8421
1 1 1 1

Ну а число 0 - грех не запомнить, так как, чтобы его получить, ничего не нужно складывать:

8421
0 0 0 0

Последняя модификация: 22.02.09 20:45

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>