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

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

Алгоритм перевода из произвольных чисел в любую систему счисления

  1. Перевести q-ичное число в десятичную систему счисления;
  2. Полученное десятичное число перевести в требуемую систему.

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

Основание Название Алфавит
2 Двоичная 0, 1
8 Восьмеричная 0, 1, 2, 3, 4, 5, 6, 7
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

Перевод целого q-ичного числа в систему счисления с новым основанием

Пример 1: перевести число 1101100 из двоичной в троичную систему.

Как было сказано выше, необходимо сначала перевести число в десятичное, а полученный ответ в троиную. Решение будет выглядеть следующим образом:

Для перевода шестнадцатеричного числа 1a316 в десятичную систему, воспользуемся формулой:

An = an-1 ∙ qn-1 + an-2 ∙ qn-2 + ∙∙∙ + a0 ∙ q0

Отсюда:

11011002=1 ∙ 26 + 1 ∙ 25 + 0 ∙ 24 + 1 ∙ 23 + 1 ∙ 22 + 0 ∙ 21 + 0 ∙ 20 = 1 ∙ 64 + 1 ∙ 32 + 0 ∙ 16 + 1 ∙ 8 + 1 ∙ 4 + 0 ∙ 2 + 0 ∙ 1 = 64 + 32 + 0 + 8 + 4 + 0 + 0 = 10810

Таким образом:

11011002 = 10810

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

Полученные остатки записываем в обратном порядке, таким образом:

10810=110003

Ответ: 11011002 = 110003.

Пример 2: перевести число 345 из шестеричной в восьмеричную систему.

Аналогично предыдущему примеру произведем вычисления:

3456=3 ∙ 62 + 4 ∙ 61 + 5 ∙ 60 = 3 ∙ 36 + 4 ∙ 6 + 5 ∙ 1 = 108 + 24 + 5 = 13710

Таким образом:

3456 = 13710

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

Полученные остатки записываем в обратном порядке, таким образом:

13710=2118

Ответ: 3456 = 2118.

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

Пример 3: перевести 231.20 из четверичной в семеричную систему счисления.

Общий смысл алгоритма перевода дробного числа, аналогичен алгоритму перевода целого, т.е. вначале переводим в десятичную, а затем в семеричную:

1. Для перевода числа 231.20 в десятичную систему воспользуемся формулой:

An = an-1 ∙ qn-1 + an-2 ∙ qn-2 + ∙∙∙ + a0 ∙ q0 + a-1 ∙ q-1 + ∙∙∙ + a-m ∙ q-m

Отсюда:

231.204=2 ∙ 42 + 3 ∙ 41 + 1 ∙ 40 + 2 ∙ 4-1 + 0 ∙ 4-2 = 2 ∙ 16 + 3 ∙ 4 + 1 ∙ 1 + 2 ∙ 0.25 + 0 ∙ 0.0625 = 32 + 12 + 1 + 0.5 + 0 = 45.510

Таким образом:

231.204 = 45.510

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

2. Полученное число 45.5 переведем из десятичной системы счисления в семеричную. Т.к. полученное число содержит дробную часть, нам потребуется перевести вначале целую часть, а затем дробную. Таким образом необходимо:

  1. Перевести 45 в семеричную систему;
  2. Перевести 0.5 в семеричную систему;

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

Полученные остатки записываем в обратном порядке, таким образом:

4510=637

2.2 Для перевода десятичной дроби 0.5 в 7-ую систему, необходимо выполнить последовательное умножение дроби на 7, до тех пор, пока дробная часть не станет равной 0 или пока не будет достигнута заданная точность вычисления. Получаем:

0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)
0.5 ∙ 7 = 3.5 (3)

Ответом станет прямая последовательность целых частей произведения. Т.е.

0.510=0.333333333337

2.3. Осталось соединить переведенные части, таким образом:

45.510=63.333333333337

Ответ: 231.204 = 63.333333333337.

  • Какое число еще хотите перевести?

    * Все поля обязательны
  • Дробное число вводите через точку
  • Введите от 2 до 16
  • Введите от 2 до 16
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Adblock
detector