Студопедия Главная Случайная страница Обратная связь

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

С использованием больших чисел





 

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

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

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

· при решении задач криптографии;

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

· для «спортивных» вычислений трансцендентных чисел (π;, e и т. д.) с высокой точностью;

· для решения олимпиадных задач по программированию.

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


Сделаем следующие объявления:







Дата добавления: 2015-09-06; просмотров: 410. Нарушение авторских прав; Мы поможем в написании вашей работы!




Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


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


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

СИНТАКСИЧЕСКАЯ РАБОТА В СИСТЕМЕ РАЗВИТИЯ РЕЧИ УЧАЩИХСЯ В языке различаются уровни — уровень слова (лексический), уровень словосочетания и предложения (синтаксический) и уровень Словосочетание в этом смысле может рассматриваться как переходное звено от лексического уровня к синтаксическому...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Studopedia.info - Студопедия - 2014-2026 год . (0.009 сек.) русская версия | украинская версия