Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Машинное изображение чисел

Читайте также:
  1. III. Схематическое изображение накопления - второй пример
  2. АЛГОРИТМЫ СЛ-Я И В-Я ВЕЩЕСТВЕННЫХ ЧИСЕЛ
  3. Віднімання 4-ох байтних чисел
  4. Геометрическая интерпретация комплексных чисел
  5. Геометрическое изображение комплексных чисел
  6. ГЕОМЕТРИЧЕСКОЕ ИЗОБРАЖЕНИЕ КОМПЛЕКСНЫХ ЧИСЕЛ.
  7. Графическое изображение вариационных рядов

Машинное изображение чисел, или внутреннее представление элементарных числовых данных, соответствует физическому уровню представления чисел в двоичном алфавите в регистрах, ячейках памяти и на других машинных носителях информации. Это представление выбирается так, чтобы обеспечить надежное хранение, передачу и обработку числовых данных с учетом знаков чисел [2, 3, 5, 6].

Для машинного изображения числа X введем обозначение [X].

В записи [X] самый левый разряд будем считать знаковым, причем вместо знака плюс для положительных чисел в этот разряд будем записывать цифру "0", вместо знака минус - старшую цифру системы счисления Н. Если считать, что запятая Фиксирована перед младшим разрядом, то машинные числа всегда меньше единицы. Например,

а) -------------------------------------

: 0: 1: 0: 1: 1: 0: 1: 1: 0: 1

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

ß--------цифровые разряды знаковый разряд---------->

 

знаковые разряды

 

б) --------------------------------------------

: 1: 0: 0: 1: 1: 0: 1: 1: 0: 0: 1: 1:

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

 

Рис. 19.

 

На рис. 19 показано машинное представление двух двоичных чисел: 0,10110110110 и -0,00110110011. Такое машинное изображение чисел называется прямым кодом. Дадим формальное определение. пряным кодом двоичного числа X =(+/-)0, х, х... х

называется его представление в виде:

 


0, х[1] x[2]... x[n-1] х[n]. если х ≥0;

[X]

1, x[l] х[2]... x[n-l] х[n], если х < 0.

 

Например: [0.10110] = 0,10110; [-0, 10101] = 1,10101.

На рис. 20 показано, каким образом при использовании прямых кодов диапазон двоичных чисел -1,0 < х <!0.0 отображается на отрезок числовой оси 1 ≤ x < 10 (вдвоичной системе). Из рисунка видно, что меньшему отрицательному числу соответствует большее значение пряного кода.

 

 

 

 


Рис. 20

Сложность выполнения операции вычитания над числами, представленными в прямом коде, вызывает необходимость применения способов кодирования отрицательных чисел, позволяющих свести вычита­ние к операции сложения. сначала определим


0, х[1] x[2]... x[n-1] х[n], если X ≥0;

[X]ok=

1, х[1] x[2]... x[n-1] х[n], если X <0.

где

0, если x[i] =1

x[i] =

1, если x[i]=0

 

Дополнительный код (ДК) отрицательного числа X получается прибавлением к этому числу основания системы счисления N=10, записанному в двоичной системе, т.е.


0, х[1] x[2]... x[n], если X ≥0;

[X]дk=

10-0, х[1] x[2]... х[n], е сли X <0.

 

Например:

 

[-0,10110]дк = 10,0 – 0,101110 = 1,01010.

 

На рис. 21 показано, каким образом при использовании дополнительного кода диапазон чисел – 1,0 <X≤ 0,0 отображается на область положительных чисел. Из рисунка видно, что большим значениям отрицательного числа соответствует большее значение дополнительного кода.

 

 

 


Рис.21

 

Можно показать, что для построения дополнительного кода

отрицательного двоичного числа необходимо инвертировать цифры

значащей части кода, а к младшему разряду прибавить единицу.

Например, [1, 11001пк]дк = [1,11001пк]ок + 0,00001=

= 1,00110 + 0,00001 = 1,00111.

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

Это эквивалентно инвертированию значащих разрядов, стоящих между запятой и самой младшей единицей в значащей части кода. Например, [1,00111дк]пк = 1,11001.

Понятий обратного и дополнительного кодов действительны для естественных систем с любым основанием N. Например, для десятичной системы счисления понятие дополнительного кода можно пояснить на следующем примере. Пусть имеется трёхразрядный десятичный счётчик

Способный считать в прямом и обратном порядке. Если счетчик первоначально находится в состоянии 000 и на вход обратного счета подать, например, 17 импульсов, то счётчик будет последовательно проходить состояния 999, 998, 997,..., 983. Последнее состояние, а именно 983, и есть дополнительный код числа 17.

 

Представление чисел в форме с плавающей запятой

 

Полулогарифмическая форма, или форма с плавающей запятой, служит для расширения диапазона чисел, представимых в машине. число X представляется в виде пары X = < М,Р >, где М - мантисса,

Р - порядок числа, причем значение числа X определяется формулой

(Х)= M * Nр, где N - основание системы счисления, в которой запи­саны

M и P. Если 1 > |M| ≥ N-1, то форма <M,P> называется нормализованной. Формат машинного изображения <M,Р> содержит поля мантиссы

и порядка с отдельными знаковыми разрядами (Рис.22). Мы будем записывать машинное изображение числа с плавающей запятой в виде

[X]пз = [M] * N[p] ,

где [M] – машинное изображение мантиссы,

[P] – машинное изображение порядка,

N – десятичный эквивалент основания системы счисления.

 

 

ß---------------[M]--------------à ß-------------[P]--------------à

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

 

----------1-------------------------m----------1-----------------------p-

знак мантиссы M знак порядка P

 

рис. 22

 

Длинна машинного изображения [M] мантисс равна m+1, где m – число значащих разрядов мантиссы, а длина машинного изображения [P] порядка равна p+1. Следовательно, все машинное изображение числа Х в форме с плавающей запятой имеет длину m+p+2.

Например, двоичное число –110,01 имеет машинное изображение в форме с плавающей запятой [-110,01]пз = 1,110010 10011, если для мантиссы отведено m=6 разрядов, а для порядка p=4 разряда.

Наибольшее число, которое можно записать в форме с плавающей запятой,

Xmax = (1 –N-m ) N np-1 .

Или приближённо

Xmax = Nnp-1 ,

А наименьшее

Xmin = N-np

Абсолютная погрешность представления числа в форме <M,P> равна

Eабс = N-m*Np/2,

А относительная

Eотн = Eабс / |X| = N-m*Np / (2M*Np) = N-m / (2M).

Поскольку 1>|M| ≥ N-1 , имеем Еотн ≤ N-m+1 /2, т.е. относительная погрешность зависит от величины числа X.

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

Решение.

1. Максимальное целое число Nmax = 111 111 111 111.

Для простоты расчётов добавим к нему и затем вычтем 1, тогда

Nmax = 1 000 000 000 000 –1 = 212 –1 = 4095

2. Минимальное число

Nmin = 0,000 000 000 001 = 2-12 = 1/4096 = 0,0002441

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

Пример. Для записи чисел с плавающей запятой используется регистр, содержащий 12 двоичных разрядов, причём для записи нормализованой мантиссы (вместе со знаком) отведено 7 двоичных разрядов, для записи порядка (вместе со знаком) – 5 двоичных разрядов. Определить максимальное (Xmax) и минимальное (Xmin) по абсолютной величине числа, которые могут быть записаны в регистр.

Решение.

1. Xmax = 0,111 111 * 21111

Для простоты расчётов добавим к мантиссе число 0,000 001 и затем его вычтем, тогда

Xmax = (1-2-6) * 215 = 215 - 29 = 32768 – 512 = 32256

2. Xmin = 0.100 000 *2-1111 =2-1 *2-15 = 2-16 = 1/65536 = 0,0000152

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

 


Дата добавления: 2015-10-23; просмотров: 146 | Нарушение авторских прав


Читайте в этой же книге: Способы описания конечных автоматов | Минимизация числа состояний абстрактного автомата | Тестирование абстрактных автоматов | Язык Граф-Схем Алгоритмов | ФОРМАЛЬНЫЕ ГРАММАТИКИ И ЯЗЫКИ | Микропрограммирование | Элементная база построения комбинационных автоматов | Переключательные функции (логика высказываний) | Канонический метод структурного синтеза автоматов | Моделирование дискретных асинхронных процессов и сети Петри |
<== предыдущая страница | следующая страница ==>
ПРЕДСТАВЛение СИМВОЛЬНОЙ ИНФОРМАЦИИ| Выполнение арифметических и логических операций

mybiblioteka.su - 2015-2024 год. (0.011 сек.)