Как перевести шестнадцатиричную систему в десятичную
Перевод чисел в различные системы счисления с решением
Исходное число записано в -ой системе счисления.
Хочу получить запись числа в -ой системе счисления.
Системы счисления
Системы счисления делятся на два типа: позиционные и не позиционные. Мы пользуемся арабской системой, она является позиционной, а есть ещё римская − она как раз не позиционная. В позиционных системах положение цифры в числе однозначно определяет значение этого числа. Это легко понять, рассмотрев на примере какого-нибудь числа.
Пример 1. Возьмём число 5921 в десятичной системе счисления. Пронумеруем число справа налево начиная с нуля:
| Число: | 5 | 9 | 2 | 1 |
| Позиция: | 3 | 2 | 1 | 0 |
Пример 2. Рассмотрим вещественное десятичное число 1234.567. Пронумеруем его начиная с нулевой позиции числа от десятичной точки влево и вправо:
| Число: | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| Позиция: | 3 | 2 | 1 | 0 | -1 | -2 | -3 |
Перевод чисел из одной системы счисления в другую
Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:
Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.
Перевод целой части числа из десятичной системы счисления в другую систему счисления
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Перевод дробной части числа из десятичной системы счисления в другую систему счисления
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
Programforyou — это сообщество, в котором Вы можете подтянуть свои знания по программированию, узнать, как эффективно решать те или иные задачи, а также воспользоваться нашими онлайн сервисами.
Перевод из десятичной системы в шестнадцатеричную
Перед тем как перейти к алгоритму перевода, вспомним алфавит шестнадцатеричной и десятичной системы счисления:
| Основание | Название | Алфавит |
|---|---|---|
| 10 | Десятичная | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| 16 | Шестнадцатеричная | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F |
Для перевода чисел из десятичной системы в шестнадцатеричную, воспользуемся соответствующим алгоритмом. Важно заметить, что алгоритм перевода целых и дробных чисел будет отличаться.
Алгоритм перевода целых десятичных чисел в шестнадцатеричную систему счисления
Пример 1 : перевести десятичное число 12349 в шестнадцатеричную систему счисления
Для наглядности произведем деление «столбиком». Решение будет выглядеть следующим образом:
Исходя из вышеприведенного алгоритма, полученные остатки необходимо записать в обратном порядке.
Алгоритм перевода десятичной дроби в шестнадцатеричную систему
Пример 2: перевести число 0,7715 в шестнадцатеричную систему.
Решение будет выглядеть следующим образом:
0.7715 ∙ 16 = 12.344 (C)
0.344 ∙ 16 = 5.504 (5)
0.504 ∙ 16 = 8.064 (8)
0.064 ∙ 16 = 1.024 (1)
0.024 ∙ 16 = 0.384 (0)
0.384 ∙ 16 = 6.144 (6)
0.144 ∙ 16 = 2.304 (2)
0.304 ∙ 16 = 4.864 (4)
0.864 ∙ 16 = 13.824 (D)
0.824 ∙ 16 = 13.184 (D)
0.184 ∙ 16 = 2.944 (2)
В данном примере можно продолжить вычисления, но зачастую, такой точности будет достаточно.
Перевод дробного десятичного числа в шестнадцатеричную систему
Для того чтобы перевести десятичное число, содержащее дробную часть, необходимо отдельно перевести целую часть и отдельно дробную.
Пример 3: перевести число 10415,136 из десятичной системы в шестнадцатеричную
Для решения примера потребуется отдельно перевести 10415 и отдельно 0,136 из десятичной системы в шестнадцатеричную, используя вышеизложенные алгоритмы. Таким образом переведя 10415, получим:
Перевод десятичной дроби 0,136 выглядит так:
0.136 ∙ 16 = 2.176 (2)
0.176 ∙ 16 = 2.816 (2)
0.816 ∙ 16 = 13.056 (D)
0.056 ∙ 16 = 0.896 (0)
0.896 ∙ 16 = 14.336 (E)
0.336 ∙ 16 = 5.376 (5)
0.376 ∙ 16 = 6.016 (6)
0.016 ∙ 16 = 0.256 (0)
0.256 ∙ 16 = 4.096 (4)
0.096 ∙ 16 = 1.536 (1)
0.536 ∙ 16 = 8.576 (8)
Теперь осталось соединить результаты перевода. Таким образом: 10415.13610=28AF.22D0E56041816

