Если обнаруживается переполнение или потеря значимости, арж метическая функция возвращает соответствующий код ошибки — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Если обнаруживается переполнение или потеря значимости, арж метическая функция возвращает соответствующий код ошибки

2017-05-14 368
Если обнаруживается переполнение или потеря значимости, арж метическая функция возвращает соответствующий код ошибки 0.00 из 5.00 0 оценок
Заказать работу

 

Код ошибки Интерпретация

E_CLINT_BOR Недопустимое основание в str2clint_l()

E_CL1NT_DBZ Деление на нуль

E_CLINT_MAL Ошибка при распределении ресурсов памяти

E_CLINT_MOD Четные модули в умножении по Монтгомери

E_CLINT_NOR Регистр недоступен

E_CLINT_NPT Пустой указатель в качестве аргумента

E_CLINT_OFL Переполнение

E CLINT UFL Потеря значимости

 

1. Операции ввода, вывода и преобразования больших чисел

 

1.1 Инициализация переменных типа CLINT

 

Ввод начальных значений (инициализация) в переменную типа CLINT не может быть осуществлен операцией присваивания, а должен производится только одной из следующих функций преобразования:

· числа типа ULONG(unsigned long unt) в CLINT

· строки символов в CLINT

· вектора,элементами которого являются байты, в CLINT

 

Преобразование значения типа ULONG в CLINT-объект

Синтаксис: void ul2clint_l (CLINT num, ULONG ul);

Вход: ul (преобразуемое значение)

Выход: num (выходной CLINT-объект)

 

Преобразование строки в CLINT-объект

Синтаксис: int str2clint_l (CLINT n, char *str, USHORT base);

Вход: str -указатель на последовательность типа char

base -основание числового представления строки,

2 <= base<= 16

Выход: n (выходной CLINT-объект)

Возврат: E_CLINT_OK, если все в порядке

E_CLINT_BOR, если base < 2 или base > 16

E_CLINT_OFL в случае переполнения

E_CLINT_NPT, если в str передан пустой указатель

 

 

Преобразование байтового вектора в CLINT-объект

Синтаксис: int byte2clint_l (CLINT n, UCHAR* bytstr, int len);

Вход: bytestr (указатель на последовательность типа UCHAR) len (длина байтового вектора)

Выход: n_l (выходной CLINT-объект)

Возврат: E_CLINT_OK, если все в порядке

E_CLINT_OFL в случае переполнения

E_CLINT_NPT, если bytstr пустой указатель

 

#include <FLINT.h>

#include <stdio.h>

#include <conio.h>

#define ClintToStr xclint2str_l // Переопределение функции xclint2str_l

int main(int argc, char* argv[])

{

CLINT a1,a2,a3; // Объявление объектов CLINT

// Инициализация объекта CLINT строкой цифр

 

char *s1 =new char; s1="9293490"; // Строка 10-х цифр

printf("S1= %s\n",s1);

str2clint_l (a1,s1,10); //Инициализация строкой

printf("BIN %s\n",ClintToStr(a1,2,1));

printf("OCT %s\n",ClintToStr(a1,8,1));

printf("DEC %s\n",ClintToStr(a1,10,1));

printf("HEX %s\n",ClintToStr(a1,16,1));

char *s2 =new char;s2="0FAA56CD"; // Строка 16-х цифр

printf("\nS2= %s\n",s2);

str2clint_l (a2,s2,16); //Инициализация строкой

printf("BIN %s\n",ClintToStr(a2,2,1));

printf("OCT %s\n",ClintToStr(a2,8,1));

printf("DEC %s\n",ClintToStr(a2,10,1));

printf("HEX %s\n",ClintToStr(a2,16,1));

char *s3 =new char;s3="00101010"; // Строка 2-х цифр

printf("\nS3= %s\n",s3);

str2clint_l (a3,s3,2); //Инициализация строкой

printf("BIN %s\n",ClintToStr(a3,2,1));

printf("OCT %s\n",ClintToStr(a3,8,1));

printf("DEC %s\n",ClintToStr(a3,10,1));

printf("HEX %s\n",ClintToStr(a3,16,1));

 

// Инициализация объекта CLINT числом

ULONG b=19000; // Переменная типа ULONG(unsigned long int)

u2clint_l(a1,b);

printf("\n a1 <- b= %s\n",ClintToStr(a1,10,1));

 

// Инициализация объекта CLINT массивом байт

unsigned char B[]={0,1,5}; byte2clint_l(a1,B,3);

printf("\n a1 <-[B] DEC = %s\n",ClintToStr(a1,10,1));

return 0;

}

 

Рисунок Применение функции ввода-вывода

1.2 Преобразование переменных типа CLINT в базовые типы

 

Преобразование CLINT-объекта в строку символов

Синтаксис: char * xclint2str_l (CLINT n_l, USHORT base, int base);

Вход: _ n l (преобразуемый CLlNT-объект)

Возврат:

base (основание численного представления искомой строки)

showbase (значение * 0: численное представление имеет префикс

«Ох» для base = 16 или «0B» для base = 2.

Значение = 0: префикса нет).

указатель на полученную строку символов, если все в порядке NULL - если 2 < base или base > 16

 

Преобразование CLINT-объекта в байтовый вектор

Синтаксис: UCHAR * clin(2byte_l (CLINT n_l, int *ton);

Вход: nj (преобразуемый CLINT-объект)

len (длина генерируемого байтового вектора)

Возврат:

указатель на полученный байтовый вектор NULL, если в len передан пустой указатель

 

Дополнительные операции с CLlNT-объектами

 

 

Копирование CLINT

Синтаксис:void cpy_l (CLINT des, CLINT src);

Вход: src (присваиваемое значение)

Выход: des (объект назначения)

 

Перестановка значений двух CLlNT-объектов

Синтаксис: void fswap_l (CLINT a, CLINT b);

Вход: a, b (переставляемые значения)

Выход: a, b

 

Число значащих двоичных разрядов CLINT-объекта

Синтаксис: unsigned int ld_l (CLINT a);

Вход: a (операнд)

Выход: Число значащих двоичных разрядов числа а

 

 

Основные арифметические операции с большими числами типа CLINT

Функции сложения

Сложение

Синтаксис: int add_l (CLINT a, CLINT b, CLINT с);

Вход: a, b (слагаемые)

Выход: с (сумма)

Возврат: E_CLINT_OK, если все в порядке

E_CLINT_OFL в случае переполнения

 

Инкремент (увеличение CLINT-обьекта на 1)

Синтаксис: int inc_l (CLINT a);

Вход: а (слагаемое)

Выход: a (сумма)

Возврат: E_CLINT_OK, если все в порядке

E_CLINT_OFL в случае переполнения

 


Поделиться с друзьями:

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.