isnan()函数的实现
implementation of isnan() function
我是一个c++编程的初学者,我被分配了一个用c++实现定点数学运算的任务。这里我试图实现一个函数isnan(),如果数字不是数字,则返回true,否则将返回false。
测试文件#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 == %fn", 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; }
} */
谁能告诉我该怎么做?或者如何解决这个范例
我正在尝试实现一个函数isnan(),如果数字不是数字,则返回true,否则将返回false。
这很简单;定义一个保留值来表示nan
(就像无穷大一样),并与之比较:
bool isnan(fixed_point x) {
return x == fixed_point::nan();
}
我想做一些像下面所示的代码如果正无穷大和负无穷大的值被添加,isnan函数应该返回1否则0
加法运算符负责检查输入并在适当的情况下返回nan
:
fixed_point operator+(fixed_point x, fixed_point y) {
if (x == fixed_point::nan() || y == fixed_point::nan()) {
return nan;
}
if (x == fixed_point::positive_infinity()) {
return y == fixed_point::negative_infinity() ? fixed_point::nan() : x;
}
// and so on
}
则main
的试验变为:
bool nan = fixed_point::isnan(a+b);
相关文章:
- 在命名空间内部还是外部实现 c++ 函数?
- 如何在C++中实现函数(f)(x)(y, z)(g)(r)
- 如何在C++中实现函数上的二叉搜索?
- 键按下事件错误 Qt 实现函数时
- 在子类之外实现函数导致未知错误
- 通过模板滥用实现函数式C++
- C++,实现函数"int next(std::string param)"时出现奇怪的编译器错误
- 我正在尝试创建自己的 strcat() 函数,而不是使用库实现函数<cstring>
- 如果未实现函数,则在链接时启用错误
- 用函数参数实现c++函数指针
- 如何在Android SDK中调用和实现C++函数
- 在 C++ RCPP 中实现 R 函数
- 实现函数模板填充多维对象
- 类的层次结构,试图在基本级别实现函数
- 用c++实现函数对象的自动检测类型
- 用shared_ptrs实现函数模板的C++实例化
- 在类中实现函数导致错误:成员引用基类型'ifstream (string)'不是结构或联合
- 用c++实现S函数.生成错误
- 引用可以用于实现函数重写吗
- 如何在c++中实现函数超时