Статус нашего сайта: |
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С компьютерами дело обстоит иначе. В большинстве компьютеров количество доступной памяти для хранения чисел фиксировано и зависит от того, когда был выпущен этот компьютер. Если приложить усилия, программист сможет представлять числа в два, три и более раза большие, чем позволяет объем памяти, но это не меняет природы данной проблемы. Память компьютера ограничена, поэтому мы можем иметь дело только с такими числами, которые можно представить в фиксированном количестве разрядов. Такие числа называются числами конечной точности. Рассмотрим ряд положительных целых чисел, которые можно записать тремя десятичными разрядами без десятичной точки и без знака. В этот ряд входит ровно 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. Ассоциативный закон не имеет силы. Важна очередность выполнения операций. |