русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 3989; Нарушение авторских прав


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

Например, надо получить десятичные эквиваленты чисел: 101,012; 673,28; 15AC16.

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

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

Алгоритмпереводацелого десятичного числа Nв позиционную систему с основанием p:

1. Разделить нацело число N на p.

2. Полученный остаток от деления дает цифру, стоящую в нулевом разряде p-ичной записи числа N.

3. Полученное частное снова разделить нацело на p и снова запомнить полученный остаток ― это цифра первого разряда, и т.д.

4. Такое последовательное деление продолжается до тех пор, пока частное не станет равным 0.

5. Цифрами искомого числа являются остатки от деления, выписанные слева направо начиная с последнего полученного остатка.

Для оформления записи перевода предлагается один из возможных способов: слева от черты записываются неполные частные от целочисленного деления на основание, а справа ― остатки от деления.

Например, надо перевести десятичное число 26 в двоичную, троичную и шестнадцатеричную системы счисления.

Результат: 2610=110102, 2610=2223, 26=1A16.



Алгоритм перевода правильной десятичной дроби Nв позиционную систему с основаниемp:

1. Умножить данное число на новое основание p.

2. Целая часть полученного произведения является цифрой старшего разряда искомой дроби.

3. Дробная часть полученного произведения вновь умножается на p, и целая часть результата считается следующей цифрой искомой дроби.

4. Операции продолжать до тех пор, пока дробная часть не окажется равной нулю либо не будет достигнута требуемая точность.

Например, надо перевести десятичную дробь 0,375 в двоичную, троичную и шестнадцатеричную систему счисления. Перевод выполнить с точностью до третьего знака.

Результат: 0,37510=0,0112; 0,37510=0,1012; 0,37510=0,616.

Наиболее часто встречающиеся системы счисления ― это двоичная, шестнадцатеричная и десятичная. Как же связаны между собой представления числа в различных системах счисления? Рассмотрим различные способы перевода чисел из одной системы счисления в другую на конкретных примерах.

Пусть требуется перевести число 567 из десятичной системы счисления в двоичную систему. Сначала определим максимальную степень двойки, такую, чтобы два в этой степени было меньше или равно исходному числу. В нашем случае это 9, т. к. 29=512, а 210=1024, что больше начального числа. Таким образом, мы получим число разрядов результата. Оно равно 9+1=10. Поэтому результат будет иметь вид 1ххххххххх, где вместо х могут стоять любые двоичные цифры. Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 567―29=55. Остаток сравним с числом 28=256. Так как 55 меньше 256, то девятый разряд будет нулем, т.е. результат примет вид 10хххххххх. Рассмотрим восьмой разряд. Так как 27=128>55, то и он будет нулевым.

Седьмой разряд также оказывается нулевым. Искомая двоичная запись числа принимает вид 1000хххххх. 25=32<55, поэтому шестой разряд равен 1 (результат 10001ххххх). Для остатка 55―32=23 справедливо неравенство 24=16<23, что означает равенство единице пятого разряда. Действуя аналогично, получаем в результате число 1000110111. Мы разложили данное число по степеням двойки:

567=1*29+0*28+0*27+0*26+1*25+1*24+0*23+1*22 +1*21+1*20

При другом способе перевода чисел используется операция деления в столбик. Рассмотрим то же самое число 567. Разделив его на 2, получим частное 283 и остаток 1. Проведем ту же самую операцию с числом 283. Получим частное 141, остаток 1. Опять делим полученное частное на 2, и так до тех пор, пока частное не станет меньше делителя. Теперь для того, чтобы получить число в двоичной системе счисления, достаточно записать последнее частное, то есть 1, и приписать к нему в обратном порядке все полученные в процессе деления остатки.

Результат, естественно, не изменился: 567 в двоичной системе счисления записывается как 1000110111.

Эти два способа применимы при переводе числа из десятичной системы в систему с любым основанием. Для закрепления навыков рассмотрим перевод числа 567 в систему счисления с основанием 16.

Сначала осуществим разложение данного числа по степеням основания. Искомое число будет состоять из трех цифр, т. к. 162=256 < 567 < 163=4096. Определим цифру старшего разряда. 2*162=512<567<3*162=768, следовательно, искомое число имеет вид 2хх, где вместо х могут стоять любые шестнадцатеричные цифры. Остается распределить по следующим разрядам число 55 (567―512). 3*16=48<55<4*16=64, значит, во втором разряде находится цифра 3. Последняя цифра равна 7 (55―48). Искомое шестнадцатеричное число равно 237.

Второй способ состоит в осуществлении последовательного деления в столбик, с единственным отличием в том, что делить надо не на 2, а на 16, и процесс деления заканчивается, когда частное становится строго меньше 16.

Конечно, не надо забывать и о том, что для записи числа в шестнадцатеричной системе счисления, необходимо заменить 10 на A, 11 на B и так далее.

Операция перевода в десятичную систему выглядит гораздо проще, так как любое десятичное число можно представить в виде x = a0*pn + a1*pn―1 + ... + an―1*p1 + an*p0, где a0 ... an ― это цифры данного числа в системе счисления с основанием p.

Например, переведем число 4A3F в десятичную систему. По определению, 4A3F= 4*163+A*162+3*16+F. Заменив A на 10, а F на 15, получим 4*163+10*162+3*16+15= 19007.

Пожалуй, проще всего осуществляется перевод чисел из двоичной системы в системы с основанием, равным степеням двойки (8 и 16), и наоборот. Для того чтобы целое двоичное число записать в системе счисления с основанием 2n, нужно

  • данное двоичное число разбить справа налево на группы по n―цифр в каждой;
  • если в последней левой группе окажется меньше n разрядов, то дополнить ее нулями до нужного числа разрядов;
  • рассмотреть каждую группу, как n-разрядное двоичное число, и заменить ее соответствующей цифрой в системе счисления с основанием 2n.


<== предыдущая лекция | следующая лекция ==>
Позиционные и непозиционные системы счисления | Арифметические операции в позиционных системах счисления


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.