- •II двоичная арифметика
- •III перевод чисел из одной системы счисления в другую
- •3.1 Перевод чисел в десятичную систему счисления из других систем счисления
- •3.2 Перевод чисел из десятичной системы счисления в систему счисления с другим основанием
- •3.3 Перевод чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления
- •Задачи для самостоятельного решения.
III перевод чисел из одной системы счисления в другую
3.1 Перевод чисел в десятичную систему счисления из других систем счисления
Пример.
Перевести
в десятичную систему счисления c
точностью до пяти знаков после запятой
следующие числа:
;
;
,
Решение.
3.2 Перевод чисел из десятичной системы счисления в систему счисления с другим основанием
Перевод
числа
из десятичной системы счисления
в систему счисления с любым другим
основанием
производится по следующему алгоритму:
Шаг 1. Целую часть исходного числа делят нацело на основание системы, в которую осуществляется перевод, запоминая остаток. Если неполное частное, полученное от очередного деления, не равно нулю, то его делят нацело. Если равно нулю, то остатки от делений записываются в обратном порядке.
Шаг 2. Дробную часть исходного числа умножают на основание системы счисления, в которую осуществляется перевод, запоминая при этом целые части полученных произведений, причем целые части произведений отбрасываются, то есть они в дальнейшем умножении участия не принимают. Умножение производится до тех пор, пока либо не будет получен ноль в дробной части произведения, либо не будет достигнута необходимая точность вычисления. После окончания умножений полученные целые части произведений записываются в прямом порядке.
Шаг 3. Результирующие числа, полученные на Шаге 1 и Шаге 2, складываются.
Пример.
Перевести
числа
и
в следующие системы счисления с точностью
до пяти знаков после запятой:
a) двоичную;
б) восьмеричную;
в) шестнадцатеричную.
Решение.
a) Перевод чисел в двоичную систему счисления.
Переведем целую часть числа в двоичную систему счисления:
|
.
Переведем дробную часть числа в двоичную систему счисления:
|
Так как в дробной части произведения получен ноль, то перевод дробной части завершен, а для получения заданной количества знаков после запятой оставшиеся две позиции дробной части необходимо заполнить незначащими нулями.
Получив
целую и дробную части числа в двоичном
виде
,
получим результирующее число:
,
значит
.
Переведем целую часть числа в двоичную систему счисления:
|
.
Переведем дробную часть числа в двоичную систему счисления:
|
Необходимое число знаков после запятой получено, поэтому вычисления останавливаются.
.
б) Перевод в восьмеричную систему счисления.
Переведем целую часть числа в восьмеричную систему счисления:
|
.
Переведем дробную часть числа в восьмеричную систему счисления:
|
.
Переведем целую часть числа в восьмеричную систему счисления:
|
.
Переведем дробную часть числа в восьмеричную систему счисления:
|
.
в) Перевод в шестнадцатеричную систему счисления.
Переведем целую часть числа в шестнадцатеричную систему счисления:
|
.
Переведем дробную часть числа в шестнадцатеричную систему счисления:
|
.
Переведем целую часть числа в шестнадцатеричную систему счисления:
.
Переведем дробную часть числа в шестнадцатеричную систему счисления:
|
.
3.3 Перевод чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления
Для
перевода восьмеричного числа
в двоичную систему счисления
необходимо каждую цифру исходного
восьмеричного числа
заменить эквивалентной ей двоичной
триадой.
Пример.
Перевести восьмеричное число
в двоичную систему счисления.
Решение.
Для
перевода шестнадцатеричного числа
в двоичную систему счисления
необходимо каждую цифру исходного
шестнадцатеричного числа
заменить эквивалентной ей двоичной
тетрадой.
Пример.
Перевести шестнадцатеричное число
в двоичную систему счисления.
Решение.
Для
перевода двоичного числа
в восьмеричную систему счисления
исходное двоичное число
необходимо разбить на триады, а затем
каждую триаду заменить соответствующей
восьмеричной цифрой.
При выделении триад для целой части числа триады берутся, начиная с младшего разряда, а для дробной, начиная со старшего разряда. В случае необходимости старшая триада целой части дополняются незначащими нулями слева, а младшая триада дробной части − справа.
Пример.
Перевести двоичное число
в восьмеричную систему счисления.
Решение.
Для перевода двоичного числа в шестнадцатеричную систему счисления исходное двоичное число необходимо разбить на тетрады, а затем каждую тетраду заменить соответствующей шестнадцатеричной цифрой.
При выделении тетрад для целой части числа тетрады берутся аналогично тому, как формируются триады при переводе чисел из восьмеричной системы счисления в двоичную.
Пример.
Перевести двоичное число
в шестнадцатеричную систему счисления.
Решение.
Для перевода восьмеричного числа в шестнадцатеричную систему счисления и обратно, необходим промежуточный перевод числа в двоичную систему .
Пример.
Перевести восьмеричное число
в шестнадцатеричную систему счисления.
Решение.
Пример.
Перевести шестнадцатеричное число
в восьмеричную систему счисления.
Решение.
Вещественное
число
может быть представлено в двух следующих
форматах:
с фиксированной точкой;
c плавающей точкой.
Формат представления действительного числа с плавающей точкой проиллюстрирован на рисунке 1.
|
Рисунок 1 – Представление числа в формате с плавающей запятой |
В компьютерной арифметике используются следующие коды для представления двоичных чисел с фиксированной точкой:
прямой код;
обратный код;
дополнительный код.
Прямой код двоичного числа совпадает с записью самого числа. Чаще всего прямой код используется для записи беззнаковых (неотрицательных) чисел. Если же прямой код применяется для представления знаковых чисел (то есть как положительных, так и отрицательных чисел), то в дополнение к цифровым разрядам числа вводится еще и старший знаковый разряд (старший бит) (рис. *). Если значение знакового разряда равно 0 то число положительное, если 1 отрицательное. В цифровых разрядах записывается двоичное представление модуля числа.
|
Рисунок 2 Представление в компьютерной арифметике знакового числа |
Пример.
десятичное число |
код представления двоичного числа |
||
прямой |
|
|
|
9 |
00001001 |
|
|
-9 |
10001001 |
|
|
|
|
|
|
|
|
|
|
естественной форме (“с фиксированной точкой”) и нормализованной форме (“с плавающей точкой”).
В естественной форме число состоит из целой и дробной частей, между которыми помещается разделитель (запятая или точка). Например, 710,78. Такая запись неудобна для слишком больших или слишком малых чисел. Кроме того, использование такой формы в компьютере вызвало бы снижение точности вычислений и привело бы к снижению точности вычислений из-за необходимости приведения в соответствие разрядов обрабатываемых чисел и связанных с этим округлений или могло бы породить ситуацию, называемую переполнением, когда старший разряд числа не умещается в отведенной разрядной сетке.
Вещественные числа в компьютере представляются в нормализованной форме. Главным достоинством такого представления является автоматическое масштабирование числа при каждом этапе обработке, что, с одной стороны, обеспечивает максимально возможную точность вычислений, а с другой – в большинстве случаев избавляет от необходимости принимать меры по предотвращению переполнения. Формат числа с плавающей точкой имеет вид:
|
(1) |
где
мантисса нормализованного числа
число, представляющее
значение вещественного числа без учета
порядка, значение мантиссы лежит в
интервале
(то есть первая значащая цифра мантиссы
всегда ненулевая);
основание системы счисления;
порядок (экспонента числа)
целое число, выражающее степень основания
числа, на которое умножается мантисса;
характеристика числа.
Представление
числа в нормализованной форме позволяет
произвести его разделение на отдельные
составляющие: знак числа
,
мантиссу
,
знак порядка
,
порядок
,
что позволяет удобно хранить и обрабатывать
числа в компьютере.
Формат записи (1) называется также формой записи числа с порядком основания системы счисления или нормализованной экспоненциальной записью.
В
компьютерных программах при записи
чисел в десятичной системе счисления
экспоненциальная запись имеет вид:
|
(2) |
где
мантисса,
буква “Е”, заменяющая выражение
“умножить на десять в степени …”).
В
программировании при записи неотрицательного
порядка числа применяется символ “+”,
также используются ведущие нули, а в
качестве десятичного разделителя не
запятая, а точка. Корме того для улучшения
читаемость программного кода иногда
прописную букву
заменяют строчной
.
Пример.
Рассмотрим алгебраическую запись одних и тех же десятичных чисел в естественной, алгебраической и нормализованной записи.
-
Запись числа
в естественной форме
(“с фиксированной запятой”)
Запись числа
в нормализованной
форме
(“с плавающей
запятой”)
“Компьютерная”
запись числа
