Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.530


Таненбаум Э.- Архитектура компьютера. стр.530

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

Рассмотрим ряд положительных целых чисел, которые можно записать тремя десятичными разрядами без десятичной точки и без знака. В этот ряд входит ровно 1000 чисел: ООО, 001, 002, 003,.., 999. При таком ограничении невозможно выразить определенные типы чисел. Сюда входят:

4- числа больше 999;

4- отрицательные числа;

♦ дроби;

♦ иррациональные числа;

♦ комплексные числа.

Одно из свойств набора всех целых чисел — замкнутость по отношению к операциям сложения, вычитания и умножения. Другими словами, для каждой пары целых чисел і и ] числа і + у, і - ] и і — тоже целые числа. Ряд целых чисел не замкнут относительно деления, поскольку существуют такие значения г и], для которых г/] не выражается в виде целого числа (например, 7/2 или 1/0).

Числа конечной точности не замкнуты относительно всех четырех операций. Вот примеры операций над трехразрядными десятичными числами:

♦ Слишком большое число:

600 + 600 = 1200.

♦ Отрицательное число:

003 - 005 = -2.

♦ Слишком большое число:

050 х 050 - 2500.

♦ Не целое число:

007 / 002 = 3,5.

Отклонения можно разделить на два класса: операции, результат которых больше самого большого числа ряда (ошибка переполнения) или меньше самого маленького числа ряда (ошибка потери значимости), и операции, результат которых не является слишком маленьким или слишком большим, а просто не является членом ряда. Из четырех приведенных примеров первые три относятся к первому классу, а четвертый — ко второму классу.

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

Алгебра чисел конечной точности отличается от обычной алгебры. В качестве примера рассмотрим ассоциативный закон

а + (Ь - с) = (а + Ь) - с.

Вычислим обе части выражения для а = 700, Ь = 400 ис = 300. В левой части сначала вычислим значение (Ь - с). Оно равно 100. Затем прибавим это число каи получим 800. Чтобы вычислить правую часть, сначала вычислим (а + Ь). Для 3-разрядных целых чисел получится переполнение. Результат будет зависеть от компьютера, но он окажется неравным 1100. Вычитание 300 из какого-то числа, отличного от 1100, не даст в результате 800. Ассоциативный закон не имеет силы. Важна очередность выполнения операций.


⇐ Предыдущая страница| |Следующая страница ⇒

Карта Сайта