Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
яп.doc
Скачиваний:
63
Добавлен:
13.05.2015
Размер:
216.06 Кб
Скачать

33. Формы представления вещественного числа. Нормализация вещественного числа. Пример.

Вещественные числа обычно представляются в виде чисел с плавающей запятой. Числа с плавающей запятой — один из возможных способов предсталения действительных чисел, который является компромиссом между точностью и диапазоном принимаемых значений, его можно считать аналогом экспоненциальной записи чисел, но только в памяти компьютера.

Число с плавающей запятой состоит из набора отдельных двоичных разрядов, условно разделенных на так называемые знак, порядок и мантиссу. В наиболее распространённом формате (стандарт IEEE 754) число с плавающей запятой представляется в виде набора битов, часть из которых кодирует собой мантиссу числа, другая часть — показатель степени, и ещё один бит используется для указания знака числа (0 - если число положительное, 1 - если число отрицательное). При этом порядок записывается как целое число в коде со сдвигом, а мантисса - в нормализованном виде, своей дробной частью в двоичной системе счисления.

Знак - один бит, указывающий знак всего числа с плавающей точкой. Порядок и мантисса — целые числа, которые вместе со знаком дают представление числа с плавающей запятой в следующем виде:

(-1)^s \times M \times B^E, где s — знак, B-основание, E — порядок, а M — мантисса.

Порядок также иногда называют экспонентой или просто показателем степени.

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

Нормальная и нормализованная форма

Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале [0; 1). Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001×100, 0,001×10−1, 0,01×10−2, 0,1×10−3), поэтому распространена также другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме 0) записывается единственным образом. Ноль же представить таким образом невозможно, поэтому стандарт предусматривает специальную последовательность битов для задания числа 0 (а заодно и некоторых других полезных чисел, таких как -\infty и +\infty). Так как старший двоичный разряд (целая часть) мантиссы вещественного числа в нормализованном виде всегда равен «1», то его можно не записывать, сэкономив таким образом один бит, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной и др.), этого замечательного свойства нет (ведь целая часть там может быть не только единицей).

34. Перевод вещественного числа из одной с/с в другую. Преобразование

(M10,k10) → (M2,k2). Пример.

Преобразование дробных десятичных чисел в двоичные[править | править исходный текст]

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

Дробь умножается на основание двоичной системы счисления (2);

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

Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются над дробной частью произведения.

Пример: Требуется перевести дробное десятичное число 206,116 в дробное двоичное число.

Перевод целой части дает 20610=110011102 по ранее описанным алгоритмам. Дробную часть 0,116 умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа:

0,116 • 2 = 0,232

0,232 • 2 = 0,464

0,464 • 2 = 0,928

0,928 • 2 = 1,856

0,856 • 2 = 1,712

0,712 • 2 = 1,424

0,424 • 2 = 0,848

0,848 • 2 = 1,696

0,696 • 2 = 1,392

0,392 • 2 = 0,784

и т. д.

Таким образом 0,11610 ≈ 0,00011101102

Получим: 206,11610 ≈ 11001110,00011101102

35. Перевод вещественного числа из одной с/с в другую. Преобразование

(M2,k2) → (M10,k10). Пример.

Перевод дробных чисел методом Горнера[править | править исходный текст]

Цифры берутся из числа справа налево и делятся на основу системы счисления (2).

Например 0,11012

(0 + 1)/2 = 0,5

(0,5 + 0)/2 = 0,25

(0,25 + 1)/2 = 0,625

(0,625 + 1)/2 = 0,8125

Ответ: 0,11012= 0,812510

36. Кодирование и обработка в компьютере целых чисел без знака. Понятие наибольшего целого числа. Понятие регистра переноса. Примеры.

Кодирование и обработка в компьютере целых чисел без знака

Будем исходить из того, что для записи числа в устройствах компьютера выделяется фиксированное количество двоичных разрядов. Память компьютера имеет байтовую структуру, однако, размер одной адресуемой ячейки обычно составляет несколько байт. Например, в компьютерах IBM ячейка памяти объединяет 2 байта (16 двоичных разрядов) - такая комбинация связанных соседних ячеек, обрабатываемая совместно, называется машинным словом. Для представления числа в регистре арифметико-логического устройства процессора, где формируется результат операции, имеется еще один дополнительный одноразрядный регистр, который называется регистром переноса и который можно рассматривать в качестве продолжения (т.е. 17-го бита) регистра результата. Назначение этого бита выяснится чуть позже.

Конечный размер разрядной сетки порождает понятие «наибольшее целое число», которого в обычном (немашинном) представлении чисел просто не существует. Если количество разрядов k и p = 2, то, согласно (4.8), (Z2)max = 2k - 1. В частности, при k = 16 (Z2)max = 216 - 1 = 1111111111111112 = 6553510. Другими словами, целого числа, скажем, 65636 и более в компьютере просто не может существовать и, следовательно, появление в ходе вычислений чисел, превышающих (Z2)max, должно интерпретироваться как ошибка. Минимальным целым числом в беззнаковом представлении, очевидно, является (Z2)min = 0000000000000002 = 010. В языке программирования PASCAL целые числа без знака, для записи которых отводится 2 байта, определены как тип Word. Тип устанавливает способ кодирования числа, количество отводимых для записи ячеек памяти (т.е. разрядность числа), а также перечень допустимых операций при обработке. Выход за границу 65535 возможен только путем увеличения количества разрядов для записи числа, но это порождает новый тип со своим Zmax; например, тип Longint* с максимальным значением 214748364710, числа которого занимают 4 байта.

* Longint является типом целого числа со знаком.