Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Архитектуре и организации ЭВМ.doc
Скачиваний:
129
Добавлен:
20.06.2014
Размер:
6.09 Mб
Скачать

Перевод чисел из одной системы счисления в другую, когда одно основание является целой степенью другого.

Как мы уже знаем, в ЭВМ наибольшее применение находит система с основаниями 2, 4, 8, 16, т.е. системы которые кратны степени 2. Поэтому целесообразно рассмотреть лишь правила перевода чисел в этих системах. Аналогичные правила будут справедливы и для других систем. Допустим, что имеется некоторое целое число N8в 8-ой системе. Оно может быть представлено в виде:

N8= a1*8n-1+ a2*8n-2+ a3*8n-3+ ...

+ an-2*82+ an-1*81+ an*80.

Пусть каким-либо образом мы получили запись этого числа в виде двоичного, т.е.:

N2 = b1*2k-1 + b2*2k-2 + ...

+ bk-2*22 + bk-1*21 + bk*20.

Разделим эти выражения на 23= 8:

a1*8n-2+ a2*8n-3+ a3*8n-4+ ...+ an-1*80 + an*8-1

-------

дробная часть

b1*2k-4 + b2*2k-5 + ... + bk-3*20+ bk-2*2-1+ bk-1*2-2+ bk*2-3

-------------------------

дробная часть

Так как числа были равны, то получается одинаковые частные и одинаковые остатки:

an*8-1= bk-2*2-1+ bk-1*2-2+ bk*2-3. (6.2)

Если снова разделим целые части на 23= 8, то опять получим равные частные и равные остатки.

При этом видим, что каждой восьмеричной цифре соответствует её двоичный эквивалент. Поэтому перевод выполняется простой заменой цифры восьмеричной системы её двоичным эквивалентом и обратно.

Пример:

62,7538= 110010,1111010112

Аналогично для 4-ой системы:

321,22334= 111001,101011112

Аналогично для 16-ой системы:

1D876,72 = 00011101100001110110,011100102

Из этих примеров видим, что чем выше основание системы счисления, тем компактнее запись.

bk-2

bk-1

bk

an

0

0

0

0

0

0

1

1

0

1

0

2

0

1

1

3

1

0

0

4

1

0

1

5

1

1

0

6

1

1

1

7

Если умножить последние соотношения (6.2) на 8, то:

an*8-1*8 = (bk-2*2-1 + bk-1*2-2 + bk*2-3)*23

an = bk-2*22 + bk-1*21 + bk*20

7. Лекция: Способы представления чисел в ЭВМ

Страницы: 1 | 2 | 3 | 4 | 5 | вопросы | »

| учебники | для печати и PDA | ZIP

  Если Вы заметили ошибку - сообщите нам, или выделите ее и нажмите Ctrl+Enter  

В лекции представлены способы представления чисел в ЭВМ: фиксированная и плавающая запятая. Описаны прямой, дополнительный и обратный коды. Дано сложение чисел в дополнительном и обратном кодах.

Как мы уже знаем, применяются два основных способа представления чисел - с фиксированной и плавающей запятой. Большинство универсальных ЭВМ работает с числами, представленными с плавающей запятой, а большинство специализированных - с фиксированной запятой.

Однако целый ряд машин работает с числами в этих двух форматах.

В общем виде способ представления чисел сильно влияет на характер программирования. Так, программирование для ЭВМ, работающих в системе с фиксированной запятой, значительно усложняется, поскольку помимо алгоритмических трудностей этот процесс требует ещё отслеживания положения запятой.

Фиксированная запятая

Оговоримся, что разрядная сетка машины имеет постоянное число разрядов - n.

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

|X| < 1

Введём две характеристики чисел: диапазон изменения и точность представления.

Диапазон изменения характеризуется теми пределами, в которых могут находиться числа, с которыми оперирует машина.

Отличное от нуля самое малое число:

Таким образом, диапазон чисел, с которыми работает ЭВМ, есть:

|X|min |X||X|max

2-n |X|1 - 2-n

Иными словами, числа, которые выходят за диапазон изменения, в ЭВМ не могут быть представлены точно. Если

|X| < |X|min = 2-n,

то такое число воспринимается как нуль.

Если:

|X| > |X|max = 1- 2-n,

то такое число воспринимается как бесконечно большое. Этим двум случаям соответствуют понятия машинного нуля и машинной бесконечности.

При оптимальном округлении абсолютная ошибка:

|ΔX| 0,5*2-n

Минимальная относительная ошибка:

|ΔX| 0,5*2-n

|x|min = _______ = -__________ 2-(n+1)

|X|max 1-2-n

так как 1-2-n 1 при большом "n"

Максимальная относительная ошибка:

|ΔX| 0,5*2-n

|X|max = _____ = _____________ = 0,5

|X|min 2-n

Ошибка представления числа зависит от величины самого числа и способа округления:

2-(n+1) |X|0,5

Заметим, что для малых чисел ошибка может достигать большой величины.