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

Представление данных и архитектура ЭВМ / Перевод чисел в различные системы счисления

 

Задача перевода заключается в следующем: Пусть известна запись числа 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).
Перевод в двоичную систему счисления
Искомое число 4710 = 1011112.
Пример 2: Перевести число 306010 в шестнадцатеричную систему счисления (Q = 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 в двоичную систему счисления
Перевод дробной части в двоичную систему счисления

Искомое число x = 0,27310 = 0,0100010111…2.


Назад: Представление данных и архитектура ЭВМ

Комментариев к записи: 2

  • Антонина
    По всей видимости в формуле - q-(i+1)=[xi·Qi] ошибка. На каждом шаге перевода дроби в Q-ичную системы мы умножаем xi на Q, а не на Q в степени i.

Добавить комментарий

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