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

2 Билет

Общие сведения

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

Каждая группа из 8-ми запоминающих элементов (байт) пронумерована. Номер байта называется его адресом. Определенное число последовательно расположенных байт называется словом. Для разных ЭВМ длина слова различна - два, четыре или восемь байт.

Представление числа с фиксированной точкой

Числа представляются в виде машинного слова (далее - МС). |__|__|__|__|__|__|__|

МС = {n, q}

Естественная форма представления: |_ знак _|_ целая часть _|_ точка _|_ дробная часть _|

Также возможны формы:

  • |_ знак _|_ целая часть _|_ точка _|

  • |_ знак _|_точка _|_ дробная часть _|

Знак отображается бинарной цифрой: 0, еслиx≥0 и1, еслиx<0

Прямой код числа:

  • [x]пр={0.x1x2x3…xn} при положительном числе

  • [x]пр={1.x1x2x3…xn} при отрицательном числе

  • Если не указан знак, а код прямой, автоматически ставится плюс

Дополнительный код числа:

  • [x]доп=[x]прпри положительном числе

  • [x]доп=qn­­ ­[|x|]прпри отрицательном числе

  • Если не указан знак, а код дополнительный, автоматически ставится минус

8 | 8

- --|--> +

3 | 7 –доп. код

|

v

15- одноразрядный сумматор, поэтому берём 5

Ответ: 8-3 = 8+7-10 = 5

Дополнительный код– бинарно-инвертированный прямой код плюс единичка в конце.

Примеры:

  1. n=3; xпр=00000011, xдоп=11111100+1=11111101

  2. n=36; xпр=00100100, xдоп=11011011+1=11011100

Диапазон изменения чисел в арифметике с фикс. точкой:

-2n-1—2n-1-1, гдеn– количество ячеек в бинарной записи.

Примеры:

  1. 8 ячеек, 256 (28) разл. значений, диапазон: -27—27-1, т.е.: -128—127

  2. 4 ячейки, 16 (24) разл. значений, диапазон: -23—23-1, т.е.: -8—7

  3. Также возможно смещение относительно нуля: 8 ячеек, 256 значений, но диапазон: 0—256 ( (-27)+ 27—(27-1)+ 27) - смещение диапазона на 27 вправо

Особые ситуации в арифметике с фиксированной точкой:

  1. Переполнение разряда(11111111 + 1 =100000000,1не вошло в значимую часть, число обнулилось)

  2. Некорректное деление(деление на нуль)

Нормальная форма представления чисел:

МС = {n, q}

X=M*Ep, гдеM– мантисса,E– основание,p– порядок

25 = 2,5 * 101= 0,25 * 102= …

1/E ≤ |M| <1

|_знак_|__порядок__|__мантисса__|

1 яч. 8 / 11 яч. 23 / 52 яч.

  1. Floatn=32

  2. Doublen=64

  3. Расширенный формат n=80

Представление числа с плавающей точкой.

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

|M|min* 2Pmin≤ |x| ≤ |M|max* 2Pmax

1*2-1022|x|≤ (2-2-52) *21023x=0

Max 011…11 2n-1-1

2,2*10-308|x| ≤ 1,7*10308 x=0

Правило:

d = [53/3.32] = 15.96≈ 15-16 знаков в сетке гарантированно

Особые ситуации:

  1. Переполнение порядка

  2. Некорректное деление

  3. Исчезновение порядка

  4. Потеря значимости

Свойства арифметики с плавающей точкой:

  1. Сравнение вещественных чисел на равенство: |a-b|<E– только приближенное значение с заданнымE. То есть, при превышении предела неравные числа могут быть равны – например 1,00…0001 и 1,00…0002

  2. Вычитание близких чисел приводит к потере точности – по той же причине.

  3. Сложение чисел aиbприa>>bприводит к потереb. Пример: 10308+10-308 = 10308. Или 100000000000 + 0.0000000001 = 100000000000.

Числа с фиксированной точкой

При представлении в ЭВМ чисел в естественной форме устанавливается фиксированная длина разрядной сетки. При этом распределение разрядов между целой и дробной частями остается неизменным для любых чисел. В связи с эти в информатике существует другое название естественной формы представления чисел - с фиксированной точкой (запятой).

Работая на компьютере, мы можем вводить числа с фиксированной запятой в любом виде. Так же они будут высвечиваться на экране компьютера, но перед занесением в память компьютера они преобразуются в соответствии с разрядной сеткой и хранятся либо с запятой, фиксированной после последнего разряда (целые числа), либо с запятой перед старшим разрядом дроби.

  1. Минимальное положительное число Аmin= 0,00...1 для дробных и 1 для целых чисел; числа по абсолютной величине меньше Аmin(единицы младшего разряда n-разрядной машинной сетки) называется машинным нулем;

  2. Максимальное положительное число Аmax= 0,11...1(1-2-n) для дробных чисел (во всех разрядах должны быть записаны единицы) и 11...1(2n-1) для целых чисел;

  3. Количество разных чисел, которые можно записать в n-разрядную сетку, равно 2n; количество разрядов n, необходимых для записи произвольного десятичного числа M равно n=log2M, если log2M - целое число; в противном случае n равно ближайшему целому, большему log2M.

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

Обычно целые числа в ЭВМ занимают один, два или четыре байта. Один старший бит отводится под знак числа. Знак положительного числа "+" кодируется нулем, а знак отрицательного числа "-" - единицей. Целые числа без знака в двух байтовом формате могут принимать значения от 0 до 216-1 (до 65535), а со знаком "-" от -215 до 215-1, то есть от -32768 до 32767.

Числа с плавающей точкой (запятой)

Неудобство представления чисел в форме с фиксированной точкой проявляется при решении задач, в которых фигурируют как очень малые так и очень большие числа В конкретных физических, математических и других задачах диапазон изменения величин может составлять, например от 10-30 до 1030. Можно убедиться, что в представлении с фиксированной запятой понадобились бы двоичные слова длинной около 256 бит (32 байт), по 128 бит на целую и дробную части. Однако работа ЭВМ с операндами такой длины была бы крайне неэффективной.

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

Для однозначности представления чисел с плавающей точкой используется нормализованная форма:

A = M*Ep, гдеM- мантисса числа,E- основание системы счисления, p - порядок числа.

При этом E-1 <= |M| <1. Это означает, что мантисса должна быть дробью и иметь первую после запятой цифру, отличную от нуля.

Число в форме с плавающей точкой занимает в памяти ЭВМ четыре или восемь байт (больше - крайне редко). При записи числа с плавающей точкой выделяются разряды для хранения мантиссы, знака порядка, порядка и мантиссы.

Оценим диапазон представления чисел по максимальному значению:

Amax=Mmax*EPmax, гдеE= 2 (основание системы счисления),Mmax= 1-2-24(максимальное значение мантиссы), Pmax= 26-1 = 63 (максимальный порядок при 6 разрядах).

Тогда Amax= (1-2-24)*263= 1*263= 1019.

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

Нормализованная запись числа.

Нормализованная запись отличного от нуля действительного числа - это запись вида a=m*Pq, где q - целое число (положительное, отрицательное или ноль), а m - правильная P-ичная дробь, у которой первая цифра после запятой не равна нулю, то есть . При этом m называется мантиссой числа, q - порядком числа.

Примеры:

1. 3,1415926 = 0, 31415926 * 101;

2. 1000=0,1 * 104;

3. 0,123456789 = 0,123456789 * 100;

4. 0,00001078= 0,1078* 8-4;

5. 1000,00012= 0, 100000012* 24.

Так как число ноль не может быть записано в нормализованной форме в том виде, в каком она была определена, то считаем, что нормализованная запись нуля в 10-й системе будет такой:

0 = 0,0 * 100.

Нормализованная экспоненциальная запись числа - это запись вида a= m*Pq, где q - целое число (положительное, отрицательное или ноль), а m - P-ичная дробь, у которой целая часть состоит из одной цифры. При этом (m-целая часть) называется мантиссой числа, q - порядком числа.

Арифметика с плавающей точкой

Во-первых, что такое плавающая точка? Возьмем, к примеру, карманный калькулятор и посмотрим, как высвечивается результат на его индикаторе после ввода очередного значения:

Десятичная точка «плавает» по индикатору по мере необходимости. Такой индикатор называется индикатором с плавающей точкой. Представление с плавающей точкой - это способ записи чисел в компьютере в виде мантиссы и порядка. Например, 12 млн. можно записать как 12*106, поскольку 106=1000000. Во многих компьютерах 12 млн. должно быть записано в виде двух чисел 12 и 6, что воспринимается как 106, умноженное на 12. Число 3.345 будет записано так: 3345 и -3.

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

Представление с фиксированной точкой - другой способ записи чисел в память, при котором положение десятичной точки числа не запоминается. Например, при вводе суммы в долларах и центах все значения должны запоминаться в центах, а расположение десятичной точки должно «помнить» не само число, а программа.

Сравним для иллюстрации три представления чисел: общепринятое, с фиксированной точкой и с плавающей точкой:

ОБЩЕПРИНЯТОЕ С ФИКСИРОВАННОЙ С ПЛАВАЮЩЕЙ

ПРЕДСТАВЛЕНИЕ ТОЧКОЙ ТОЧКОЙ

1.23 123 123(-2)

10.98 1098 1098(-2)

100.00 10000 1 (2)

58.60 5860 586(-1)

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

особые случаи представления вещественных чисел

• нуль - это такое число, у которого порядок и мантисса равны нулю. Нуль может иметь положительный или отрицательный знаки, которые игнорируются в операциях сравнения. Таким образом, имеется два нуля - положительный и отрицательный;

• наименьшее положительное число - это число, которое имеет нулевой знаковый бит, значение порядка, равное 1, и значение мантиссы, равное нулю. В зависимости от представления наименьшее положительное число имеет следующие значения: 1,17*10-38(одинарная точность), 2.23*10-308(двойная точность), 3.37*10-4932 (расширенная точность);

• наибольшее отрицательное число - полностью совпадает с наименьшим положительным числом, но имеет бит знака, установленный в 1;

• наибольшее положительное число - это число, которое имеет нулевой знаковый бит, поле порядка, в котором все биты кроме самого младшего, равны 1, и содержит единицы во всех разрядах мантиссы. В зависимости от представления наибольшее положительное число имеет следующие значения: 3.37*1038(одинарная точность), 1.67*10308(двойная точность), 1.2*104932(расширенная точность);

• наименьшее отрицательное число - полностью совпадает с наибольшим положительным числом, но имеет бит знака, установленный в 1;

• положительная и отрицательная бесконечность - это число содержит все единицы в поле порядка и все нули в поле мантиссы. В зависимости от состояния знакового бита может быть положительная и отрицательная бесконечности. Бесконечность может получиться, например, как результат деления конечного числа на нуль;

• нечисло - содержит все единицы в поле порядка и любое значение в поле мантиссы. Нечисло может возникнуть в результате выполнения неправильной операции при замаскированных особых случаях (ошибкам при работе с сопроцессоре будет посвящен отдельный раздел этой главы);

• неопределенность - содержит в поле порядка все единицы, а в поле мантиссы - число 1000..0 (для одинарной и двойной точности) или 11000..0 (для расширенной точности, так как в этом формате хранится старший бит мантиссы).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]