ПЕРЕВОД ЧИСЕЛ ИЗ ШЕСТНАДЦАТЕРИЧНОЙ СИСТЕМЫ В ДЕСЯТИЧНУЮ
ПЕРЕВОД ЧИСЕЛ ИЗ ВОСЬМЕРИЧНОЙ СИСТЕМЫ В ДЕСЯТИЧНУЮ
Восемь раз отмерь, один раз переведи.
А. Алешин
Алгоритм перевода чисел из восьмеричной в десятичную систему счисления аналогичен уже рассматривавшемуся нами в разделе Перевод чисел из двоичной системы в десятичную. Различие состоит лишь в том, что для восьмеричной системы счисления основанием является число 8, а правило перевода в данном случае может быть сформулировано в следующем виде:
Для перевода восьмеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания восьмеричной системы счисления на соответствующие цифры в разрядах восьмеричного числа.
Например, требуется перевести восьмеричное число 2357 в десятичное. В этом числе 4 цифры и 4 разряда ( разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с уже известным нам правилом представим его в виде суммы степеней с основанием 8:
23578 = (2·83)+(3·82)+(5·81)+(7·80) = 2·512 + 3·64 + 5·8 + 7·1 = 126310
Для вычислений "вручную" и решения примеров и контрольных заданий вам могут пригодиться таблицы степеней оснований изучаемых систем счисления (2, 8, 10, 16), приведенные вПриложении.
Каждый Охотник Желает Знать, Где Сидит Фазан.
Запишите в шестнадцатеричной системе счисления все цвета,
встречающиеся в этом мнемоническом правиле. Слабо?
А. Алешин
После изучения предыдущего раздела переформулировать алгоритм перевода чисел из шестнадцатеричной в десятичную систему счисления не составляет никакого труда. Помнить следует лишь о том, что для шестнадцатеричной системы счисления основанием является число 16, и правило перевода в данном случае может быть сформулировано в следующем виде:
Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.
Например, требуется перевести шестнадцатеричное число F45ED23C в десятичное. В этом числе 8 цифр и 8 разрядов (помним, что разряды считаются, начиная с нулевого, которому соответствует младший бит). В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:
F45ED23C16 = (15·167)+(4·166)+(5·165)+(14·164)+(13·163)+(2·162)+(3·161)+(12·160) = 409985490810
Для вычислений "вручную" и решения примеров и контрольных заданий вам могут пригодиться таблицы степеней оснований изучаемых систем счисления (2, 8, 10, 16), приведенные вПриложении.
Для перевода чисел из десятичной системы счисления в двоичную используют так называемый "алгоритм замещения", состоящий из следующей последовательности действий:
1. Делим десятичное число А на 2. Частное Q запоминаем для следующего шага, а остаток a записываем как младший бит двоичного числа.
2. Если частное q не равно 0, принимаем его за новое делимое и повторяем процедуру, описанную в шаге 1. Каждый новый остаток (0 или 1) записывается в разряды двоичного числа в направлении от младшего бита к старшему.
3. Алгоритм продолжается до тех пор, пока в результате выполнения шагов 1 и 2 не получится частное Q = 0 и остаток a = 1.
Например, требуется перевести десятичное число 247 в двоичное. В соответствии с приведенным алгоритмом получим:
24710 : 2 = 12310 |
24710 - 24610 = 1, остаток 1 записываем в МБ двоичного числа. |
12310 : 2 = 6110 |
12310 - 12210 = 1, остаток 1 записываем в следующий после МБ разряд двоичного числа. |
6110 : 2 = 3010 |
6110 - 6010 = 1, остаток 1 записываем в старший разряд двоичного числа. |
3010 : 2 = 1510 |
3010 - 3010 = 0, остаток 0 записываем в старший разряд двоичного числа. |
1510 : 2 = 710 |
1510 - 1410 = 1, остаток 1 записываем в старший разряд двоичного числа. |
710 : 2 = 310 |
710 - 610 = 1, остаток 1 записываем в старший разряд двоичного числа. |
310 : 2 = 110 |
310 - 210 = 1, остаток 1 записываем в старший разряд двоичного числа. |
110 : 2 = 010, остаток 1 записываем в старший разряд двоичного числа. |
Представление чисел в ЭВМ: естественная и нормальная формы(+методичка)
В ЭВМ используются следующие формы представления данных:
• числа с фиксированной точкой (запятой) или естественная форма;
• числа с плавающей точкой (запятой) или нормальная форма;
• десятичные числа;
• символьные данные.
При естественной форме, иначе называемой формой с фиксированной запятой, числа вюодвпся в виде целой и дробной частей, разделенных запятой (точкой). Положение последней строго фиксировано: запятая находится либо -перед цифрой старшего разряда, либо после цифры младшего разряда. Первый вариант относится к представлению чисел, которые по модулю (без учета знака) меньше единицы, второй вариант представления распространяется только на целые числа. Порядковые номера разрядов идут слева направо, начиная с нулевого. Его называют знаковым разрядом, и в этом разряде О сооггоетствует знаку плюс, а 1 - знаку минус.
Нормальная или полулогарифмическая форма, иначе называемая формой с плавающей запятой, предполагает ввод чисел в полулогарифмическом виде - число состоит нз двух частей: мантиссы числа, обозначаемой буквой т, и порядка числа, который обозначается буквой р, причем т<1, а р - всегда целое. Положение запятой в числе зависит от порядка р (отсюда н название формы - с плавающей запятой). Например, одно и то же десятичное числа можио П1рвдстав,ить в таких варнангах:
0,81756423-10» р = 0; 8,17564230,10-1. р=-1; 0,08175642.101 P==-fl.
Когда в мантиссе перед запятой стоит нуль, а после запятой - цифра, отличная от нуля, то такую форму называют нормализованной.
Действия над числами, представленными в нормальной форме, сложнее, чем иад числами с фиксированной запятой. Но зато форма «с плавающей запятой>-позволяет охваггить очень ширлжий диапазон чисел.
Числа с фиксированной точкой
В общем случае разрядная сетка ЭВМ для размещения чисел в форме с фиксированной точкой показана на рисунке.
На рисунке показано п разрядов для представления целой части числа и r разрядов — для дробной части числа.
a) фиксированная
При заданных п иr диапазон изменения модулей чисел, коды которых могут быть представлены в данной разрядной сетке, определяется неравенством
Использование формы с фиксированной точкой для представления смешанных (с целой и дробной частью) чисел в ЭВМ практически не встречается. Как правило, используются ЭВМ либо с дробной арифметикой (п=0), либо с целочисленной арифметикой (r=0).
Форма представления чисел с фиксированной точкой упрощает аппаратную реализацию ЭВМ, уменьшает время выполнения машинных операций, однако при решении задач на машине необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты находились в допустимом диапазоне представления. Если этого не соблюдать, то возможно переполнение разрядной сетки, и результат вычислений будет неверным. От этих недостатков в значительной степени свободны ЭВМ, использующие форму представления чисел с плавающей точкой, или нормальную форму.
Числа с плавающей точкой
b) рис 14.б с плавающей точкой
В нормальной форме число представляется в виде произведения X=mqp
где т — мантисса числа;
q — основание системы счисления;
р — порядок.
Для задания числа в нормальной форме требуется задать знаки мантиссы и порядка, их модули в q-ичном коде, а также основание системы счисления. Нормальная форма представления чисел неоднозначна, ибо взаимное изменение т и р приводит к плаванию точки (запятой). Отсюда произошло название формы представления чисел.
Для однозначности представления чисел в ЭВМ используется нормальная нормализованная форма, в которой положение точки всегда задается перед значащей цифрой мантиссы, т. е. выполняется условие
В общем случае разрядную сетку ЭВМ для размещения чисел в нормальной форме можно представить в виде, изображенном на рис. Разрядная сетка содержит:
· разряд для знака мантиссы;
· r цифровых разрядов для q-ичного кода модуля мантиссы;
· разряд для кода знака порядка;
· s разрядов для q-ичного кода модуля порядка.
Диапазон представления модулей чисел в нормальной нормализованной форме определяется следующим неравенством:
Пример:
133,21 = 102*1.3321, 102- порядок, 1.3321- мантисса.
1332.1 = 103*1.3321
0.13321 = 10-1*1.3321
Пример2 :
Одно и то же число может быть записано в различных формах
452,34 = 452340·10-3 = 0,0045234·105 = 0,45234·103
Естественная форма Нормальная форма
В конкретной ЭВМ диапазон представления чисел с плавающей точкой зависит от основания системы и числа разрядов для представления порядка.
При этом у одинаковых по длине форматов чисел с плавающей точкой с увеличением основания системы счисления существенно расширяется диапазон представляемых чисел.
Точность вычислений при использовании формата с плавающей точкой определяется числом разрядов мантиссы r. Она увеличивается с увеличением числа разрядов.
При представлении информации в виде десятичных многоразрядных чисел каждая десятичная цифра заменяется двоично-десятичным кодом. Для ускорения обмена информацией, экономии памяти и удобства операций над десятичными числами предусматриваются специальные форматы их представления: зонный (распакованный) и упакованный. Зонный формат используется в операциях ввода-операций. Для этого в ЭВМ имеются специальные команды упаковки и распаковки десятичных чисел.