Смешанное сложение переменных типа CLINT и USHORT — КиберПедия 

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

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Смешанное сложение переменных типа CLINT и USHORT

2017-05-14 435
Смешанное сложение переменных типа CLINT и USHORT 0.00 из 5.00 0 оценок
Заказать работу

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

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

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

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

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

Функции вычитания

Вычитание

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

Вход: a (уменьшаемое),b (вычитаемое)

Выход: с (разность)

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

E_CLINT_UFL в случае потери значащих разрядов

Декремент (уменьшение CLINT-обьекта на 1)

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

Вход: а (уменьшаемое)

Выход: a (разность сумма)

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

E_CLINT_UFL в случае потри значащих разрядов

 

Вычитание числа типа USHORT из числа типа CLINT

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

Вход: a (уменьшаемое), b (вычитаемое)

Выход: c (разность)

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

E_CLINT_UFL в случае потери значащих разрядов

Функции умножения

Умножение

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

Вход: a, b (сомножители)

Выход: c(произведение)

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

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

Возведение в квадрат

Синтаксис: inl sqr_l (CLINT a, CLINT c);

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

Выход: c (квадрат)

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

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

 

Умножение CLINT- объекта на число типа USHORT

Синтаксис: inl umul_l (CLINT a, USHORT b, CLINT c);

Вход: a, b (сомножители)

Выход: c (произведение)

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

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

Функции деления

Деление

Синтаксис: inl div_l (CLINT a, CLINT b, CLINT q, CLINT tem);

Вход: a (делимое), b (делитель)

Выход: q (частное), tem (остаток)

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

E_CLINT_DBZ в случае деления на 0

 

Деление переменной типа CLINT на переменную типа USHORT

Синтаксис: int udiv_l (CLINT a, USHORT b, CLINT q,CLINT r);

Вход: a (делимое), b (делитель)

Выход: q (частное), r (остаток)

Возврат: E_CLINT_OK, если все в порядке E_CLINT_DBZ в случае деления на 0

 

Функции модульного деления

Модульное деление (вычет по модулю)

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

Вход: a (делимое), b (делитель или модуль)

Выход: r (остаток)

Возврат: E_CLINT_OK, если все в порядке E_CLINT_D8Z в случае деления на 0

Модульное деление на степень двойки (вычет по модулю 2k)

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

Вход: a (делимое),b (показатель степени делителя или модуля)

Выход: r (остаток)

 

Модульное деление переменной типа CLINT на перемен­ную типа USHORT (вычет по модулю)

Синтаксис: USHORT umod_l (CLINT a, USHORT b);

Вход: a (делимое), b (делитель или модуль)

Возврат: неотрицательный остаток, если все в порядке 0xFFFF в случае деления на 0

 

 

Пример использования основных арифметических операций

 

#pragma hdrstop

 

#include <FLINT.h>

#include <stdio.h>

#include <conio.h>

#include <math.h>

 

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

 

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

{

 

CLINT a,b,c; // Обьявление объектов CLINT

 

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

 

char *sa =new char;sa="104576356756674567845764567456757645778467837638";

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

 

char *sb =new char;sb="1814595567567567567567635673567567567567876867897";

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

printf("a=%s\n",ClintToStr(a,10,1));

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

//Сложение

int Err= add_l (a,b,c);

printf("Err= %d c=a+b= %s\n",Err,ClintToStr(c,10,1));

 

// Инкремент

Err= inc_l (a);

printf("Err= %d a=a+1= %s\n",Err,ClintToStr(a,10,1));

 

// Смешанное сложение переменных типа CLINT и USHORT

USHORT US=1956; printf("US= %d\n",US);

Err= uadd_l (a,US, c);

printf("Err= %d a+US= %s\n",Err,ClintToStr(c,10,1));

 

//Вычитание

Err= sub_l (b,a,c);

printf("Err= %d c=b-a= %s\n",Err,ClintToStr(c,10,1));

 

// Денкремент

Err= dec_l (c);

printf("Err= %d c=c-1= %s\n",Err,ClintToStr(c,10,1));

 

//Вычитание числа типа USHORT из числа типа CLINT

Err= usub_l (c, US, a);

printf("Err= %d a=c-US= %s\n",Err,ClintToStr(a,10,1));

 

//Yмножение

Err= mul_l (a, b, c);

printf("Err= %d c=a*b= %s\n",Err,ClintToStr(c,10,1));

 

// Возведение в квадрат числа a

Err= sqr_l (a, c);

printf("Err= %d b=sql(a)= %s\n",Err,ClintToStr(b,10,1));

 

// Умножение CLINT- объекта на число типа USHORT

Err=umul_l (a, US, c);

printf("Err= %d c=a*US= %s\n",Err,ClintToStr(c,10,1));

 

//Деление

CLINT q, tem;

Err= div_l (b, a, q, tem);

printf("Err= %d q=b/a= %s\n",Err,ClintToStr(q,10,1));

printf(" tem= %s\n",ClintToStr(tem,10,1));

 

// Модульное деление (вычет по модулю)

mod_l (b, a, tem);

printf(" Err= %d tem=b mod a= %s\n",Err,ClintToStr(tem,10,1));

 

// Модульное деление на степень двойки (вычет по модулю 2k)

Err= mod2_l (a, 5, q);

printf(" Err= %d q=a mod (2*2*2*2*2) = %s\n",Err,ClintToStr(q,10,1));

 

//Модульное деление переменной типа CLINT на переменную типа USHORT

//(вычет по модулю)

US=pow(2,5);

USHORT F= umod_l (a, US);

printf(" F=a mod (2*2*2*2*2) = %d\n",F);

getch();

return 0; }

 

 

Рисунок Основные арифметические операции

 

Задание

 

№ п.п Инициализация Преобразование переменных, дополнительные операции Арифметические операции Поразрядные операции
  Строкой 16-х цифр Перестановка значений двух CLlNT-объектов Сложение,деление, модульное деление на степень двойки Сдвиг влево на один бит
  Числом типа ULONG Копирование CLINT   Смешанное сложение, возведение в квадрат, умножение Сдвиг вправо на один бит
  Вектором байт Перестановка значений двух CLlNT-объектов Инкремент, модульное деление на степень двойки, вычитание числа типа USHORT из числа типа CLINT Поразрядное “И”  
  Строкой 2-х цифр Преобр. CLINT-объекта в строку символов Вычитание,деление, модульное деление переменной типа CLINT на перемен­ную типа USHORT Поразрядное “ИЛИ”  
  Строкой 8-х цифр Перестановка значений двух CLlNT-объектов Смешанное сложение переменных типа CLINT и USHORT, умножение, декремент Поразрядное “исключающее ИЛИ”  
  Строкой 10-х цифр Преобр. CLINT-объекта в строку символов Вычитание числа типа USHORT из числа типа CLINT, деление переменной типа CLINT на переменную типа USHORT, вычитание Проверка и задание значения бита  
  Строкой 2-х цифр Перестановка значений двух CLlNT-объектов Сложение, умножение, модульное деление Проверка и обнуление значения бита  
  Числом типа ULONG Копирование CLINT   Инкремент,деление, возведение в квадрат   Сдвиг влево на один бит
  Строкой 8-х цифр Копирование CLINT   Умножение CLINT- объекта на число типа USHORT, возведение в квадрат, модульное деление переменной типа CLINT на перемен­ную типа USHORT Сдвиг вправо на один бит
  Строкой 16-х цифр Перестановка значений двух CLlNT-объектов   Сложение, деление, модульное деление,деление переменной типа CLINT на переменную типа USHORT Поразрядное “И”  
  Вектором байт Копирование CLINT возведение в квадрат, модульное деление на степень двойки   Поразрядное “ИЛИ”  
  Строкой 2-х цифр Число значащих двоичных разрядов CLINT-объекта Умножение, декремент,модульное деление Проверка двоичного разряда  
  Строкой 10-х цифр Копирование CLINT   Смешанное сложение переменных типа CLINT и USHORT, умножение CLINT- объекта на число типа USHORT, модульное деление на степень двойки Поразрядное “И”  
  Строкой 16-х цифр Преобр. CLINT-объекта в строку символов Вычитание, умножение, модульное деление Проверка и задание значения бита  
  Числом типа ULONG Перестановка значений двух CLlNT-объектов Инкремент, деление, декремент Поразрядное “ИЛИ”  
  Строкой 8-х цифр Копирование CLINT   Сложение, умножение, модульное деление переменной типа CLINT на перемен­ную типа USHORT Сдвиг влево на один бит
  Строкой 2-х цифр Число значащих двоичных разрядов CLINT-объекта Вычитание числа типа USHORT из числа типа CLINT, декремент, умножение Сдвиг вправо на один бит
  Строкой 10-х цифр Перестановка значений двух CLlNT-объектов Сложение,, модульное деление,смешанное сложение переменных типа CLINT и USHORT   Поразрядное “исключающее ИЛИ”  
  Числом типа ULONG Копирование CLINT   Вычитание, декремент,умножение Проверка и задание значения бита  
  Вектором байт Преобр. CLINT-объекта в байтовый вектор   Сложение, возведение в квадрат,модульное деление переменной типа CLINT на перемен­ную типа USHORT   Проверка и обнуление значения бита  

-

- Отчет должен содержать содержать:

1. Hаименование и номер лабораторной работы;

2. Условие задачи;

3. Распечатка листинга программы;

4. Распечатка результатов выполнения задачи;

5. Выводы по результатам выполнения задач, анализ возможностей библиотеки “FLINT\C”.

 

 


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

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

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

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

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



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

0.036 с.