- •Flint/c
- •Если обнаруживается переполнение или потеря значимости, арж метическая функция возвращает соответствующий код ошибки
- •E clint ufl Потеря значимости
- •1. Операции ввода, вывода и преобразования больших чисел
- •1.2 Преобразование переменных типа clint в базовые типы
- •1.3 Дополнительные операции с cLlNt-объектами
- •1.4Основные арифметические операции с большими числами типа clint
Flint/c
Лабораторная работа № 1
Использование библиотеки математических функций для больших чисел применительно к криптографии
“FLINT\C”.
Цель работы
Ознакомиться с основами использования библиотеки “FLINT\C”.
Научиться создавать Win32-консольные приложения с основами использования библиотеки “FLINT\C”.
Изучить функции для выполнения основных операции с большими числами (ввода-вывода, арифметические и поразрядные операции) В ходе выполнения данной лабораторной работы необходимо создать консольное Win32-приложение, которое реализует некоторые математические вычисления
Методические указания к работе
FLINT\C(Functions for Large Integers in Number Theory and Criptography) является свободно распространяемой библиотекой функций и классов для реализации различных математических операций и алгоритмов с использованием больших чисел. Она включает в себя следующие группы функций:
основные арифметические операции с большими числами
функции модульной арифметики
функции битовых операций
теоретико-числовые функции
функции генерации больших псевдослучайных чисел
и другие.
Подключение библиотеки
Для подключения “FLINT\C” в программы С\С++ достаточно подключить к проекту модуль flint.h - #include ”z:\xxxx\flint.h ”,а исходный код этого модуля flint.с необходимо включить в состав разрабатываемого проекта.
Создание проекта в Borland C++
Создать новый проект – Project->Open Project (например Lab1.prj)
Влючить в состав проекта библиотеку flinta.lib
Project->Open Project->Add item…
Влючить в состав проекта файл flinta.h
Project->Open Project->Add item…
Включить в состав проекта основной файл программы (например Lab1.cpp ) Project->Open Project->Add item
Проверить состав проекта Windows-> Project
Выполнить компиляцию проекта Compile->Make
Выполнить программу Compile->Run
Представление больших чисел в “FLINT\C”
В основе “FLINT\C” лежит обработка многоразрядных натуральных чисел, длина которых намного превосходит допустимый размер стандартных типов данных.Эти числа представлены в виде вектора стандартного типа данных unsigned short int.Эти числа могут представляться числом длиной до 4094 бита(1024 десятичных разряда) и описываются специальным типом данных
CLINT.
Семантика интерфейса
Представление FLINT/C-функций начинается с заголовка, который содержит синтаксическое и семантическое описание интерфейса функции. Такие заголовки функций обычно выглядят следующим образом
Функция Краткое описание функции
Синтаксис: int f_l (CLINT a_l, CLINT b_l, CLINT c_l);
Вход: a_l, b_l (операнды)
Выход: c_l (результат)
Возврат: 0, если все в порядке
предупреждение или сообщение об ошибке в противном случае
Здесь нужно различать между собой значения выхода и возврата.
В то время как выход относится к значениям, которые функция хранит в переданных аргументах, под возвратом подразумеваются значения, которые функция возвращает посредством команды return.
За исключением нескольких случаев,значение возврата содержит сведения о состоянии или сообщения об ошибке.
Другие параметры, не связанные с выходом, функция не изменяет.
Обращения вида f_l(a_j, b_j, a_j), где a_j и b_j - аргументы и в конце вычислении прежнее значение a+j затирается результатом, вполне допустимы, так как результат записывается в возвращаемую nepеменную только после завершения операции.