解析搜索引擎掉入黑洞风险:无限循环与浮点数异常处理
创始人
2024-12-31 04:37:04
0 次浏览
0 评论
让搜索引擎掉入黑洞的风险怎么理解?
在计算机编程中,陷入黑洞是指陷入无限循环中。例如C中的无限循环:#include
所以让一个搜索引擎陷入黑洞,就意味着让控制搜索引擎变量参数的代码程序陷入无限循环。
C语言1/0和1/0.0的问题
计算机在存储浮点数方面并不准确,因此判断一个值是否为0的方法是制定一个0.000001的数字,然后用它来判断它是否大于-0.000001和小于0.000001。浮点数0是一个很小的数,但不是0。
这不会导致被零除的错误
一个简单的c语言程序,输出-1.#IND00..不知道哪里错
在对浮点数进行编程时,如果不注意,经常会出现1.#IND、1.#INF或nan,inf等奇怪的输出。这通常意味着浮点运算的例外。
特殊浮点数的含义1.#INF/inf:该值的意思是“无穷大(infinity的缩写)”,即超出了计算机能够表示的浮点数的最大范围(或者说超出了浮点数的最大范围)计算机可以表示的浮点数(或超出计算机可以表示的浮点数的最大范围)的double类型的值)。
一个整数除以0,你会得到一个值1.#INF/inf;因此,如果你一个负整数除以0,你会得到一个值-1.#INF/-inf;这种情况一般比较复杂。
简单地说,它们来自任何具有未定义(非法)结果的浮点运算,“IND”是“未确定”的缩写,“nan”是。
notanumber的缩写。
生成该值的常见示例包括:取负数的平方根、取负数的对数、0.0/0.0、0.0*∞、∞/∞等。
总之,如果遇到1.#INF/inf,请检查运算结果是否溢出并被零除。
如果遇到1.#IND/nan,请检查是否存在非法操作。
判特殊浮点数许多C库提供了一组函数来确定浮点数是无穷大还是NaN。
int_isnan(doublex)函数用于判断浮点数是否为NaN,int_finite(doublex)函数用于判断浮点数是否为无穷大。
您可能已经注意到,上面的两个函数都以下划线开头,因此可能存在可移植性问题。
那么如何实现通用判断版本呢?首先,对于Nan,可以使用如下代码来实现:boolIsNumber(doublex){//这里的比较操作似乎总是为true//但是有趣的是,对于IEEE754浮点数NaN,它总是得到false!return(x==x);}并且以下代码可以确定浮点数如果点数是有限的(有限的,即既不是NaN也不是无限的):boolIsFiniteNumber(doublex){return(x<=DBL_MAX&&x>=-DBL_MAX);}其中,DBL_MAX是
通过上面两个函数的组合,还可以判断一个浮点数是否为Inf。
相关文章
C语言字符串转数字类型:函数与实例解析
2024-12-29 00:38:48C语言对数函数解析:ln、lg、log的...
2024-12-16 18:33:50Excel换行技巧:避免空行,掌握多种使...
2024-12-17 21:17:17C语言scanf函数:字符输入与格式控制...
2024-12-16 08:57:36C语言教程:正整数逆序输出方法详解
2024-12-29 12:45:16字符串转换攻略:日期格式转换全解析
2024-12-15 05:37:58深入解析:字符串在编程中的重要性与应用
2024-12-24 17:04:19ln函数在c语言中怎么用
2025-01-07 16:18:17字符常量与字符串常量:定义、存储与用法差...
2024-12-18 03:52:23Java输出到.txt文件换行技巧大揭秘
2024-12-30 14:32:11最新文章
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
12
2025-01
热门文章
1
JSF架构解析与Java学习资源分享:J...
JavaServerFacesJSF体系结构JavaServerFaces(JS...
2
数据结构C语言版深度解析与C语言入门很简...
《数据结构(C语言版)》.严蔚敏吴伟民著.pdf在《数据结构(C语言版)》一书中...
3
C语言字符串常量解析:区别、用途及存储方...
什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...
4
C语言printf函数:格式字符串与输出...
printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...
5
Excel技巧:计算字符串起始位置与合并...
如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...
6
Python发音全解:掌握正确的发音方法...
python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...
7
字符与字符串:编程中的基础文本类型解析
字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...
8
Python编程语言:多领域应用与开发优...
Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...
9
深度解析:C语言编程特点与应用领域
什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...
10
Java全解析:跨平台编程语言的魅力与多...
java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...