- •Системы счисления
- •Перевод целых чисел из одной системы счисления в другую
- •Перевод дробных чисел из одной системы счисления в другую
- •3.2.Общие сведения Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Двоичная арифметика
- •Сложение
- •Вычитание
- •Прямой, обратный и дополнительный коды
- •Прямой код
- •Обратный код
- •Дополнительный код
- •Сложение и вычитание в дополнительном коде
Перевод дробных чисел из одной системы счисления в другую
Введем следующие обозначения: правильную дробь в исходной системе счисления p будем записывать в виде 0,Yp , дробь в системе q – 0,Yq , а преобразование – в виде 0,Yp0,Yq.
Алгоритмы перевода 0,Y100,Yq:
-
умножить исходную дробь в 10-ной системе счисления на q, выделить целую часть – она будет первой цифрой новой дроби; отбросить целую часть;
-
для оставшейся дробной части операцию умножения с выделением целой и дробных частей повторять, пока в дробной части не окажется 0 или не будет достигнута желаемая точность конечного числа; появляющиеся при этом целые будут цифрами новой дроби;
-
записать дробь в виде последовательности цифр после нуля с разделителем в порядке их появления в п. (1) и (2).
Пример
Выполнить преобразование 0,375100,Y2
Таким образом, 0,37510 = 0,0112
Перевод 0,Yp0,Y10, как и в случае натуральных чисел, сводится к вычислению значения формы в десятичной системе счисления. Например,
0,0112 = 0·2-1 + 1·2-2 + 1·2-3 = 0,25 + 0,125 = 0,37510
Пример
Выполнить преобразование 5,3(3)10X3
Перевод целой части, очевидно, дает: 510 = 123. Перевод дробной части: 0,3(3)10 = 0,13. Окончательно: 5,3(3)10 = 12,13.
3.2.Общие сведения Восьмеричная система счисления
В восьмеричной системе счисления употребляются всего восемь цифр, т.е. эта система счисления имеет основание S = 8. В общем виде восьмеричное число выглядит следующим образом:
,
где .
Восьмеричная система счисления не нужна ЭВМ в отличие от двоичной системы. Она удобна как компактная форма записи чисел и используется программистами (например, в текстах программ для более краткой и удобной записи двоичных кодов команд, адресов и операндов). В восьмеричной системе счисления вес каждого разряда кратен восьми или одной восьмой, поэтому восьмиразрядное двоичное число позволяет выразить десятичные величины в пределах 0-255, а восьмеричное охватывает диапазон 0-99999999 (для двоичной это составляет 27 разрядов).
Поскольку 8=23, то каждый восьмеричный символ можно представить трехбитовым двоичным числом. Для перевода числа из двоичной системы счисления в восьмеричную необходимо разбить это число влево (для целой части) и вправо (для дробной) от точки (запятой) на группы по три разряда (триады) и представить каждую группу цифрой в восьмеричной системе счисления. Крайние неполные триады дополняются необходимым количеством незначащих нулей.
Пример.
Двоичное число 10101011111101(2) записать в восьмеричной системе счисления.
Пример.
Двоичное число 1011.0101(2) записать в восьмеричной системе счисления.
Перевод из восьмеричной системы счисления в двоичную осуществляется путем представления каждой цифры восьмеричного числа трехразрядным двоичным числом (триадой).
Шестнадцатеричная система счисления
Эта система счисления имеет основание S = 16. В общем виде шестнадцатеричное число выглядит следующим образом:
,
где .
Шестнадцатеричная система счисления позволяет еще короче записывать многоразрядные двоичные числа и, кроме того, сокращать запись 4-разрядного двоичного числа, т.е. полубайта, поскольку 16=24. Шестнадцатеричная система также применяется в текстах программ для более краткой и удобной записи двоичных чисел.
Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить это число влево и вправо от точки на тетрады и представить каждую тетраду цифрой в шестнадцатеричной системе счисления.
Пример.
Двоичное число 10101011111101(2) записать в шестнадцатеричной системе.
Пример.
Двоичное число 11101.01111(2) записать в шестнадцатеричной системе.
Для перевода числа из шестнадцатеричной системы счисления в двоичную, необходимо, наоборот, каждую цифру этого числа заменить тетрадой.
В заключение следует отметить, что перевод из одной системы счисления в другую произвольных чисел можно осуществлять по общим правилам, описанным в разделе “Двоичная система счисления”. Однако на практике переводы чисел из десятичной системы в рассмотренные системы счисления и обратно осуществляются через двоичную систему счисления.
Кроме того, следует помнить, что шестнадцатеричные и восьмеричные числа – это только способ представления больших двоичных чисел, которыми фактически оперирует процессор. При этом шестнадцатеричная система оказывается предпочтительнее, поскольку в современных ЭВМ процессоры манипулируют словами длиной 4, 8, 16, 32 или 64 бита, т.е. длиной слов, кратной 4. В восьмеричной же системе счисления предпочтительны слова, кратные 3 битам, например слова длиной 12 бит (как в PDP-8 фирмы DEC).