当前位置: 首页 > news >正文

党建网站建设成效/友妙招链接

党建网站建设成效,友妙招链接,比较出名的网站域名,用什么浏览器开wordpress最好author: hjjdebug date: 2025年 03月 11日 星期二 17:21:45 CST description: 浮点数 NaN 彻底研究(linux 下 c环境测试) 文章目录 1. 创建一个NaN 数据,2. 打印一个NaN 数据,3. NaN 到底等于二进制的多少? 即它是怎样表示的?4. 1.0/0.0 生成的是什么? …

author: hjjdebug
date: 2025年 03月 11日 星期二 17:21:45 CST
description: 浮点数 NaN 彻底研究(linux 下 c环境测试)


文章目录

    • 1. 创建一个NaN 数据,
    • 2. 打印一个NaN 数据,
    • 3. NaN 到底等于二进制的多少? 即它是怎样表示的?
    • 4. 1.0/0.0 生成的是什么? 是一个无穷大 inf
    • 5. 运算时生成一个nan, 用-1开平方 , 竟然生成了负不存在
    • 6. nan 的运算和判断isnan()

NaN即Not a Num,只对于浮点数出现。用于处理计算中的错误情况

1. 创建一个NaN 数据,

2. 打印一个NaN 数据,

3. NaN 到底等于二进制的多少? 即它是怎样表示的?

看一个简单代码:

$ cat main.cpp 
#include <math.h>
#include <stdio.h>typedef union
{double dbl;long int lint;
}U_DATA;int main() {U_DATA data;double x = NAN;  // 直接创建NaNprintf("x = %f\n", x);  // 输出:x = nandata.dbl=x;printf("double = %f\n", data.dbl);printf("long = 0x%lx\n", data.lint);return 0;
}

执行结果
$ ./temp
x = nan
double = nan
long = 0x7ff8000000000000
很惊讶, %f 竟能输出 nan 字符串!
这是因为进化的printf 针对这个浮点数进行了特殊处理
当它遇到0x7ff8000000000000, 就打印nan

4. 1.0/0.0 生成的是什么? 是一个无穷大 inf

我本来想让它生成一个无效数,实际它生成的是无穷大数, 顺便也了解一下无穷大数.
代码:

$ cat main.cpp 
#include <math.h>
#include <stdio.h>typedef union
{double dbl;long int lint;
}U_DATA;int main() {U_DATA data;double a=0.0;double x=1.0/a;printf("x = %f\n", x);  // 输出:x = nandata.dbl=x;printf("double = %f\n", data.dbl);printf("long = 0x%lx\n", data.lint);return 0;
}

运行结果:
./temp
x = inf
double = inf
long = 0x7ff0000000000000 // 重点, 0x7ff0 与 那个0x7ff8是不一样的

printf(“%f”) 对无穷大数也要做特殊处理了.

5. 运算时生成一个nan, 用-1开平方 , 竟然生成了负不存在

代码:

cat main.cpp 
#include <math.h>
#include <stdio.h>typedef union
{double dbl;long int lint;
}U_DATA;int main() {U_DATA data;
//    double x = NAN;  // 直接创建NaNdouble a=-1;double x=sqrt(a);printf("x = %f\n", x);  // 输出:x = -nan, 其值0xfff8, 与正nan(0x7ff8)不同data.dbl=x;printf("double = %f\n", data.dbl);printf("long = 0x%lx\n", data.lint);return 0;
}

执行结果:
./temp
x = -nan
double = -nan
long = 0xfff8000000000000

负不存在0xfff8跟12个0 与 正不存在0x7ff8跟12个0 还是不一样的.

6. nan 的运算和判断isnan()

代码:

$ cat main.cpp
#include <math.h>
#include <stdio.h>typedef union
{double dbl;long int lint;
}U_DATA;int main() {U_DATA data;double x = NAN;  // 直接创建NaN
//这里得到结论, nan 与数据运算还是nan,
//可见浮点数运算对错误进行了特殊处理double y=x+1;printf("x+1 = %f\n", y);  // 输出:x+1 = nandata.dbl=y;printf("double = %f\n", data.dbl);printf("long = 0x%lx\n", data.lint); //nan还是用0x7ff8开始后跟12个0表示if(isnan(y)) //判断y 是否是一个正常的数据{printf("y is not a number!\n");}else{printf("y is a number!\n");}return 0;
}

执行结果:
$ ./temp
x+1 = nan
double = nan
long = 0x7ff8000000000000
y is not a number!

这里得到结论:
nan 与数据运算还是nan,
可见浮点数运算对错误进行了特殊处理,

它不会傻傻的都按浮点数去运算,而是先判断一下数据是否合法.
你也可以用isnan()判断数据是否合法

http://www.whsansanxincailiao.cn/news/31958112.html

相关文章:

  • 如归网络营销推广企业/北京优化seo排名
  • 建设网站出现400错误/torrentkitty磁力猫
  • 江西建设厅网站财务部/网站友情链接查询
  • wordpress http https/优化网址
  • 做网站公司未来的发展方向/南宁百度seo排名优化软件
  • 榆林做网站电话/cnn头条新闻
  • 萝岗高端网站建设/最好的推广平台排名
  • 网站用户运营/湖南专业关键词优化
  • 网站运营每天做啥工作/中国世界排名
  • 政府网站加强意识形态阵地建设/软文街怎么样
  • 做的美食视频网站/如何用手机制作网站
  • 海外贸易在什么网站做/网页制作的软件有哪些
  • 有哪些做调查问卷的赚钱网站/发帖推广百度首页
  • 白云免费网站建设/seo入门书籍
  • wordpress插件原理/南宁百度seo软件
  • 查询网站开发的端口/湖南专业seo优化
  • 青岛北京网站建设价格/百度商城app
  • 网站建设微信商城运营/百度浏览器入口
  • 用xp做网站是否先搭建iis/免费自建网站有哪些
  • 滕州营销型网站建设/google学术搜索
  • 那里有个人做网站的/智能网站排名优化
  • 公司做网站的费用怎么入账/百度知道下载
  • 外贸网站推广软件/万网官网入口
  • 网站集约化后如何建设/知名网络营销推广
  • 天津定制网站建设/怎么自己创建一个网站
  • 电子商务seo是指什么意思/开鲁网站seo站长工具
  • 行业门户网站建设哪家好/中国网站访问量排行
  • 网站子目录是什么/百度信息
  • 机械网站建设开发/站长是什么级别
  • 用家里的电脑做网站服务器/seo搜索引擎