Прототип функции ldiv:
ldiv_t ldiv ( long int num, long int denom );
Название | Язык |
---|---|
stdlib.h | С |
cstdlib | С++ |
Описание
Функция ldiv
выполняет целочисленное деление. То есть, возвращает частное и остаток от деления, при делении числителя на знаменатель, в структуре типа ldiv_t
, которая имеет два элемента данных: quot
и rem
.
Параметры:
- num
Числитель. - denom
Знаменатель.
Возвращаемое значение
Результат возвращаемый функцией хранится в структуре ldiv_t
, определённой в заголовочном файле <cstdlib>
, которая содержит два параметра,определённых в любом порядке, например так:
long quot; long rem;
Пример: исходный код программы
//пример использования функции ldiv #include <iostream> #include <cstdlib> int main () { ldiv_t ldivresult = ldiv (1000000L,132L); std::cout << "1000000 div 132L =>nцелая часть = " << ldivresult.quot << "nостаток = " << ldivresult.rem; return 0; }
Пример работы программы
CppStudio.com
1000000 div 132L =>
целая часть = 7575
остаток = 100
целая часть = 7575
остаток = 100
Комментарии
kpanat .
Ну собственно помимо функций div, ldiv и lldiv не хватает фунций udiv, uldiv и ulldiv для типов данных unsigned int, unsigned long int и unsigned long long int сответсвенно. Для беззнаковых типов данных. Особенно последние две представляется проблематичными… Приходится писать на ассемблере. Я конечно понимаю, что многие станут выступать против беззнаковых типов. Однако убедительных аргументов у них нет, кроме того, что так решило США… Но я приведу один который убедительно доказывает что часто нужны именно беззнаковые типы. Например индексация массива там не может быть отрицательного индекса. Потому что все индексы начинаются от нуля… Многие величины бессмысленны если они отрицательны. Поэтому беззнаковые типы данных всё таки нужны, знаковые тоже. А так и те, и другие! Но почему-то функции div сделали только для знаковых типов!