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

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

Задача

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

Решение

Алгоритм перевода десятичного числа в другую систему счисления одинаков. Однако в случае шестнадцатеричной системы он усложнен тем, что цифры с 10 до 15 должны быть заменены буквами.
Поэтому сначала находится остаток от деления на 16. Если он представляет собой двузначное число, то переменной ch присваивается соответствующий символ. Иначе происходит перевод цифры в ее символьное представление. Символ добавляется к строке.

В прошлом году я писал программу для перевода из любой системы в любую систему счисления на си. Теперь потребовалось на Pascal.Функций стало больше. Некоторые пришлось просто копировать с других сайтов (да простят меня авторы)

К сожалению, точность вычислений здесь меньше, чем была на си — всего один знак после запятой точен.

Ограничение во FreePascal: числа в 16-ричной системе можно вводить только большими буквами. Нет функции UpperCase, писать было лень 🙂
Исходный код (FreePascal):

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

Система счисления — это способ представления числа. Одно и то же число может быть представлено в различных видах. Например, число 200 в привычной нам десятичной системе может иметь вид 11001000 в двоичной системе, 310 в восьмеричной и C8 в шестнадцатеричной.

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

Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
20010 = 110010002 = 3108 = C816

Кратко об основных системах счисления

Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.

Читайте также:  Highscreen power five инженерное меню

Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.

Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.

Шестнадцатеричная система счисления. Наиболее распространена в современных компьютерах. При помощи неё, например, указывают цвет. #FF0000 — красный цвет. Для записи числа используются цифры от 0 до 9 и буквы A,B,C,D,E,F, которые соответственно обозначают числа 10,11,12,13,14,15.

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

Преобразовать число из любой системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на X n , где X — основание исходного числа, n — номер разряда. Затем суммировать полученные значения.

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

Делим десятичное число на основание системы, в которую хотим перевести и записываем остатки от деления. Запишем полученные остатки в обратном порядке и получим искомое число.

Переведем число 37510 в восьмеричную систему:

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

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

Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:

Триада 000 001 010 011 100 101 110 111
Цифра 1 2 3 4 5 6 7

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

Разбиваем число на группы по 4 цифры справа налево. Последнюю (левую) группу дополним при необходимости ведущими нулями. Внутри каждой полученной группы произведем умножение каждой цифры на 2 n , где n — номер разряда, и сложим результаты.

Читайте также:  Как открыть файл типа pdf

Также как и в первом способе разбиваем число на группы по 4 цифры. Заменим полученные группы (тетрады) на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:

Тетрада 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Цифра 1 2 3 4 5 6 7 8 9 A B C D E F

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

Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.

Используем таблицу триад:

Цифра 1 2 3 4 5 6 7
Триада 000 001 010 011 100 101 110 111

Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.

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

Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.

Используем таблицу тетрад:

Цифра 1 2 3 4 5 6 7 8 9 A B C D E F
Тетрада 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.

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

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

Ссылка на основную публикацию
Перевод денег сбер по номеру телефона
У Российских людей имеются карты банка «Сбербанк». Зачастую надо перевести средства на данную банковскую систему для тех или иных операций....
Относительная атомная масса металла
Определение и формула атомной массы Массы атомов и молекул очень малы, поэтому в качестве единицы измерения удобно выбрать массу одного...
Отношение литовцев к русским
В литовском обществе наблюдается усталость от риторики действующего президента и ландсбергистов, которые все внутренние проблемы государства пытаются оправдать либо «российской...
Перевод за рубеж втб
Мы даем вам возможность, максимально быстро и безопасно перечислять и получать средства из любой точки мира, посредством разнообразных услуг денежных...
Adblock detector