русс | укр

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

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

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

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


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

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


Дата добавления: 2014-11-27; просмотров: 1527; Нарушение авторских прав


Теперь немного узнав о системах счисления хорошо бы освоить перевод чисел из одной системы в другую. Начнем с перевода десятичного числа в двоичное. Для отображения чисел в разных системах используются нижние индексы, например, число10 - десятичное число, число2 - двоичное число, число16 или числоH - 16-тиричное число.

Для перевода десятичного числа в двоичное нужно десятичное число делить на 2 до получения минимального остатка. При делении десятичного числа на 2 образуются остатки, равные 0 или 1. Первый остаток будет младшим разрядом. Последний остаток будет предпоследним перед старшим разрядом. Результат деления последнего числа является старшим разрядом и он всегда равен 1. Например, переведем малюхонькое число 21 в двоичный код.

21/2=10 Остаток 1
10/2=5 Остаток 0
5/2=2 Остаток 1
2/2=1 Остаток 0

Последнее число 2/2=1. Эта единица идет в старший разряд. В следующий разряд идет остаток от этого деления (0) и т. д. до последнего разряда, т. е. считаем снизу вверх. В результате деления получили код 10101. Проверим: 16 + 4 + 1 = 21. Ты гляди, работает! А ну-ка, переведем число посложней, типа 274.

274/2=137 Остаток 0
137/2=68 Остаток 1
68/2=34 Остаток 0
34/2=17 Остаток 0
17/2=8 Остаток 1
8/2=4 Остаток 0
4/2=2 Остаток 0
2/2=1 Остаток 0

Полученное число 1 0001 0010. Проверим: 256 + 16 + 2 = 274. Работает, твою налево!

Итак, суть понятна? Для простоты и экономии места на странице умножение нулей на весовые коэффициенты не показано. То есть, для первого примера полный формат имеет вид: 1 x 16 + 0 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 21.

Можно переводить и по-другому. Лично мне удобней переводить так. Если имеется какое-то число, например, 43, оно, как видно, меньше 64, но больше 32, значит первые два разряда 01. Из 43 вычитаем 32 получаем 11. Разряд с весовым коэффициентом 16 здесь не канает, ставим 0. Число 11 представляется как 1011 (см. первую таблицу). Итого имеем: 0010 1011. Первые два нуля стоят для красоты.



Как же перевести наоборот, из двоичного в десятичное. Еще проще. Это написано чуть-чуть выше, где проверяется результат перевода десятичного числа в двоичное. Допустим есть число 1011 0101. Где стоит 1, имеет право на жизнь весовой коэффициент, где 0 - весовые коэффициенты "сдохли". Считаем: 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 181. Для тренировки можете проверить переводом его в двоичное.

Перевод шестнадцатеричных чисел туда сюда осуществляется аналогично. Делим десятичное число на 16 до получения остатка, причем меньшего 16. При делении десятичного числа остатки получаются в виде ряда чисел от 0 до 15. Числа от 10 до 15 заменяются буквами латинского алфавита A, B, C, D, E, F. Как и при переводе в двоичный код, последний остаток предшествует старшему разряду, результат деления последнего числа есть старший разряд. Переведем число 845 в 16-тиричный код.

845/16 = 52 Остаток 13 = D
52/16= 3 Остаток 4

Полученное число 34D. Проверим: 3 х 162 + 4 x 161 + D x 160 = 845. D в шестнадцатеричном коде эквивалентно 13. Здесь также показан и обратный перевод. Умножаем числа 16-тиричного кода на 16 в степени и складываем.

Для перевода 16-тиричного кода в двоичный достаточно разбить число на отдельные символы (числа) которым соответствуют двоичные эквиваленты. То есть, то же число 34D разбиваем на 3, 4 и D и записываем двоичный код каждого элемента: 3 = 0011, 4 = 0100, D = 1101. 34D = 0011 0100 1101. Вот так, 10-разрядное двоичное число в 16-тиричном эквиваленте записывается всего тремя символами. Понятно, зачем шестнадцатеричный код? Для обратного перевода двоичное число разбивается на тетрады и каждой тетраде ставится в соответствие шестнадцатеричный эквивалент. Причем разбиение ведется справа налево. Если последняя тетрада не получается, т. е. в старшей тетраде всего 1, 2 или 3 единицы, к ним дописывают нули. Получается как в последнем примере, первые два нуля образуют тетраду совместно с единицами (число 3).

Иногда, кстати, удобней переводить шестнадцатеричные числа в двоичные, а потом в десятичные и наоборот. Кому как нравится.

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



<== предыдущая лекция | следующая лекция ==>
Двоично-десятичный код | Математические операции над двоичными числами


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


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

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

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


 


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

 
 

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

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