Основы современных компьютерных технологий

         

Преобразование чисел


ЭВМ работают с двоичными кодами, пользователю удобнее иметь дело с десятичными или шестнадцатеричными. Поэтому возникает необходимость перевода числа из одной системы счисления в другую.

Преобразование числа X из системы счисления с основанием q в систему счисления с основанием р (преобразование X(q) >Х(р)) осуществляется по правилу замещения или по правилу деления-умножения на основание системы счисления.

Правило замещения реализуется на основании формулы (1.1) и предусматривает выполнение арифметических операций с кодами чисел в новой системе счисления. Поэтому оно чаще всего используется для преобразования чисел из недесятичной системы счисления в десятичную.

Пример. Выполнить преобразование Х(2) >Х(10), если Х(2) = 10101, 011

Х(10)= 1·24 + 0·23 + l·22+0·21 +l·20+0·2-1+l·2-2+l·2-3= 21, 375.

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

25

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


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

Умножение необходимо производить до получения в искомом р-ичном коде цифры того разряда, вес которого меньше веса младшего разряда исходной g-ичной дроби. При этом в общем случае получается код приближенно, и всегда с недостатком значения дроби. Поэтому в случае обратного преобразования (р-ичного кода дроби в g-ичный) результат может не совпадать с исходным значением g-ичной дроби.

Пример. Выполнить преобразование X(10)>X(2), X(10)=37,45

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

Таким образом, в результате преобразования получаем 37,45(2)= 100101,0111... 2. Как следует из примера, процесс перевода дробной части можно продолжить до бесконечности. ЭВМ оперирует числами, представленными конечными наборами цифр.

26

Поэтому дроби округляют в соответствии с правилами преобразования и весом младшего разряда исходной дроби.

Преобразование чисел из двоичной системы счисления в восьмеричную, шестнад-цатеричную и обратно осуществляется по упрощенным правилам с учетом того, что основания этих систем счисления кратны целой степени 2, т.е. 8=23 , а 16=24 . Это означает, что при преобразовании восьмеричного кода числа в двоичный, необходимо каждую восьмеричную цифру заменить соответствующим трехзначным двоичным кодом (триадой).

При преобразовании шестнадцатеричного кода числа в двоичный необходимо каждую шестнадцатеричную цифру заменить четырехзначным двоичным кодом (тетрадой).

При преобразовании двоичного кода в восьмеричный или шестнадцатеричный двоичный код делится соответственно на триады или тетрады влево и вправо от запятой (точки), разделяющей целую и дробные части числа. Затем триады (тетрады) заменяются восьмеричными (шестнадцатеричными) цифрами.

Например: 1CD,4(16) = 000111001101,0100(2)= 715,2(8).

Если при разбиении двоичного кода в крайних триадах (тетрадах) недостает цифр до нужного количества, они дополняются нулями. Соответственно, "лишние" нули слева и справа, не вошедшие в триады (тетрады) отбрасываются.


Содержание раздела