Перевод из шестнадцатеричной системы счисления в двоичную
Для перевода чисел из шестнадцатеричной системы в двоичную, воспользуемся соответствующим алгоритмом. Важно заметить, что алгоритм перевода целых и дробных чисел будет отличаться.
Алгоритм перевода шестнадцатеричных чисел в двоичную систему счисления
- Перевести шестнадцатеричное число число в двоичную систему счисления;
- Полученное шестнадцатеричное число перевести в двоичную систему.
Подробно о переводе из шестнадцатеричной в десятичную систему смотрите на этой странице, о переводе из десятичной в двоичную — здесь. Для целостного понимания, разберем несколько примеров, но для начала вспомним алфавиты двоичной, десятичной и шестнадцатеричной систем счисления:
Основание | Название | Алфавит |
---|---|---|
2 | Двоичная | 0, 1 |
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: перевести число F16 из шестнадцатеричной в двоичную систему.
Как было сказано выше, необходимо сначала перевести число в десятичное, а полученный ответ в двоичный код. Решение будет выглядеть следующим образом:
Для перевода шестнадцатеричного числа F16 в десятичную систему, воспользуемся формулой:
A16 = an-1 ∙ 16n-1 + an-2 ∙ 16n-2 + ∙∙∙ + a0 ∙ 160, отсюда:
F1616=F ∙ 162 + 1 ∙ 161 + 6 ∙ 160 = 15 ∙ 256 + 1 ∙ 16 + 6 ∙ 1 = 3840 + 16 + 6 = 386210
Таким образом:
F1616 = 386210
Полученное число 3862 переведем из десятичной системы счисления в двоичную. Для этого, осуществим последовательное деление на 2, до тех пор пока остаток не будет меньше чем 2.
Полученные остатки записываем в обратном порядке, таким образом:
386210=1111000101102
Ответ: F1616 = 1111000101102.
Перевод дробного шестнадцатеричного числа в двоичную систему счисления
Пример 2: перевести 1F.625 из шестнадцатеричной в двоичную систему счисления.
Общий смысл алгоритма перевода дробного числа, аналогичен алгоритму перевода целого, т.е. вначале переводим в десятичную, а затем в двоичную:
1. Для перевода числа 1F.625 в десятичную систему воспользуемся формулой:
A16 = an-1 ∙ 16n-1 + an-2 ∙ 16n-2 + ∙∙∙ + a0 ∙ 160 + a-1 ∙ 16-1 + ∙∙∙ + a-m ∙ 16-m, отсюда:
1F.62516=1 ∙ 161 + F ∙ 160 + 6 ∙ 16-1 + 2 ∙ 16-2 + 5 ∙ 16-3 = 1 ∙ 16 + 15 ∙ 1 + 6 ∙ 0.0625 + 2 ∙ 0.00390625 + 5 ∙ 0.000244140625 = 16 + 15 + 0.375 + 0.0078125 + 0.001220703125 = 31.38403320312510
Таким образом:
1F.62516 = 31.38403320312510
Обратите внимание! Формула перевода дробного числа в десятичную систему, очень похожа на формулу перевода целого, однако немного отличается.
2. Полученное число 31.384033203125 переведем из десятичной системы счисления в двоичную. Т.к. полученное число содержит дробную часть, нам потребуется перевести вначале целую часть, а затем дробную. Таким образом необходимо:
- Перевести 31 в двоичную систему;
- Перевести 0.384033203125 в двоичную систему;
2.1 Для того, чтобы перевести число 31 из десятичной системы счисления в двоичную, необходимо осуществить последовательное деление на 2, до тех пор пока остаток не будет меньше чем 2.
Полученные остатки записываем в обратном порядке, таким образом:
6610=1028
2.2 Для перевода десятичной дроби 0.384033203125 в двоичную систему, необходимо выполнить последовательное умножение дроби на 2, до тех пор, пока дробная часть не станет равной 0 или пока не будет достигнута заданная точность вычисления. Получаем:
0.384033203125 ∙ 2 = 0.76806640625 (0)
0.76806640625 ∙ 2 = 1.5361328125 (1)
0.5361328125 ∙ 2 = 1.072265625 (1)
0.072265625 ∙ 2 = 0.14453125 (0)
0.14453125 ∙ 2 = 0.2890625 (0)
0.2890625 ∙ 2 = 0.578125 (0)
0.578125 ∙ 2 = 1.15625 (1)
0.15625 ∙ 2 = 0.3125 (0)
0.3125 ∙ 2 = 0.625 (0)
0.625 ∙ 2 = 1.25 (1)
0.25 ∙ 2 = 0.5 (0)
Ответом станет прямая последовательность целых частей произведения. Т.е.
0.38403320312510=0.011000100102
2.3. Осталось соединить переведенные части, таким образом:
31.38403320312510=11111.011000100102
Ответ: 1F.62516 = 11111.011000100102.