Я начинаю программировать на C++, и мне поручена реализация математической арифметики с фиксированной точкой в C++. здесь я пытаюсь реализовать функцию isnan(), которая возвращает true, если число is not-a-number else вернет false.реализация функции isnan()
Тестовый файл
#include "fixed_point_header.h"
int main()
{
fp::fixed_point<long long int, 63> a=fp::fixed_point<long long int, 63>::positive_infinity(); // will assign positive infinity value to a from an function from header
fp::fixed_point<long long int, 63> b=fp::fixed_point<long long int, 63>::negative_infinity(); // will assign positive infinity value to b from an function from header
float nan=fp::fixed_point<long long int, 63>::isnan(a,b);
printf("fixed point nan value == %f\n", float (nan));
}
В заголовке я хочу сделать несколько, как код, показанный ниже, если добавляются положительные и отрицательные значения бесконечности, то функция должна возвращать IsNaN 1 еще 0
Заголовочный файл
#include fixed_point_header
static fp::fixed_point<FP, I, F> isnan (fp::fixed_point<FP, I, F> x,fp::fixed_point<FP, I, F> y){
/*if (x + y) happens, ie. x and y are infinities
{
should return 1; }
else {
should return 0; }
} */
может ли кто-нибудь рассказать, как это сделать? или как решить эту парадигму
Seymouroh да @ Mike, 'isnan' функция будет принимать аргумент и возвращать 1 или 0 в зависимости от того он нан или нет. так что для этого сначала мне нужно определить нан? – Dr7
Да, вам нужно определить значение для представления 'nan'. Кстати, я удалил свой комментарий, когда я расширил его до ответа. –