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

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

Задача перевода заключается в следующем:

Пусть известна запись числа x в системе счисления с каким-либо основанием P:

x = pn·Pn + pn-1·Pn-1 +…+ p1·P1 + p0·P0 + p-1·P-1 +…+ p-m·P-m

где pi – цифры P-ичной системы.

Требуется найти запись этого числа x в системе счисления с основанием Q:

x = qu·Qu + qu-1·Qu-1 +…+ q1·Q1 + q0·Q0 + q-1·Q-1 +…+ q-v·Q-v

где qi – искомые цифры Q-ичной системы.

Для перевода любого числа достаточно отдельно перевести его целую и дробную части.

Перевод целых чисел

Представим число x в Q-ичной системе в виде полинома

x = qu·Qu + qu-1·Qu-1 +…+ q1·Q1 + q0·Q0

Разделим обе части этого равенства на основание искомой системы счисления Q, причем в левой части произведем фактическое деление, поскольку запись числа x в P-ичной системе нам известна, а в правой части деление выполним аналитически:

x/Q = qu·Qu-1 + qu-1·Qu-2 +…+ q1·Q0;   q0 — остаток от деления

Таким образом, младший коэффициент числа x в Q-ичной системе счисления является остатком от деления x на Q. Число x/Q является целым, и к нему тоже можно применить описанную процедуру:

x/Q2 = qu·Qu-2 + qu-1·Qu-3 +…+ q2·Q0;   q1 — остаток от деления

Этот процесс продолжается до тех пор, пока не получено x/Qu=0.

Для записи числа x в Q-ичной системе счисления запишем каждый из полученных коэффициентов qi одной Q-ичной цифрой:

xQ=ququ-1…q1q0

Пример 1: Перевести число 4710 в двоичную систему счисления (Q=2).
Перевод 47 в двоичную систему счисления
Искомое число 4710 = 1011112.
Пример 2: Перевести число 306010 в шестнадцатеричную систему счисления (Q = 16).
Перевод 3060 в 16-ричную систему счисления

Таким образом, 410 = 416, 1510 = F16,  1110 = B16.

Искомое число 306010 = BF416.

Перевод дробных чисел

Пусть необходимо перевести в Q-ичную систему правильную дробь x (0<x<1), заданную в P-ичной системе счисления.

Поскольку x<1, то в Q-ичной системе запись числа x будет иметь вид

x = q-1·Q-1 +q-2·Q-2 +…+ q-v·Q-v

Умножив обе части этого выражения на Q, получим

x·Q = q-1·Q0 + q-2·Q-1 +…+ q-v·Q-v+1

где q-1 является целой частью, а (x·Q — q-1)  – правильная дробь.

Таким образом, искомые коэффициенты qi могут быть определены по формуле

q-(i+1) = [xi·Q]

где [ ] – целая часть.

Процесс продолжается до тех пор, пока не будет получено xi+1=0, либо не будет достигнута требуемая точность числа.

Пример 3: Перевести число 0,27310 в двоичную систему счисления
Перевод 0,273 в двоичную систему счисления
Искомое число x = 0,27310 = 0,0100010111…2.

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

Для перевода числа в десятичную систему счисления из системы счисления с основанием Q достаточно найти сумму произведений каждой цифры на основание системы счисления в соответствующей степени.

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

x = 1·25 + 0·24 + 1·23 + 1·22 + 1·21 + 1·20= 4710

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

x = 11·162 + 15·161 + 4·160 = 306010

Пример 6: Перевести число 0,0112 в десятичную систему счисления.

x = 0·2-1 + 1·2-2 + 1·2-3 = 0,37510

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх