浮点数的一些特殊数值
1.+0 和 -0
阶码全为0尾数全为0,正负由符号位决定
2.+∞和-∞
阶码全为1,尾数全为0,正负由符号位决定
3.非规格化数
阶码全为0,尾数非0
顺带解释,为什么要有非规格化数
大家知道浮点数是有隐藏位“ 1 ”的
然后,浮点数的计算会有1. XXX * 2^n
那怎么表示0呢???
这里就需要有非规格化数了
因为阶码全为0的非规格化数的隐藏位是“ 0 ”,这时就可以处理 0 的问题了!
Ps:阶码为0时,阶码的真值不再是0-127=-127,而是IEEE754规定的-126,承接规格化数的最小阶码真值(1-127=-126)
这里顺带引出所谓的规格化数
也就是
阶码非0,且阶码不全为1
这里看一下规格化数的最小值
根据语法,阶码的最小值为1
1-127=-126
则有最小的规格化数1.0*2^-126
你会发现这个数字要比非规格化数要大
所以说,非规格化数还用于处理比规格化数更小的数值
综上:
非规格化数有两个作用:
1.处理 0 的问题
2.处理比规格化数更小的数值
4.NaN(Not a Number)
阶码全为1,尾数非0
NaN也叫非数,用于定义异常数据
下面我拿C++举一个例子
我拿 0 作了分母
#include<iostream>
using namespace std;
int main()
{double a=0;double b=0/a;cout<<b;return 0;
}
输出结果:
再让我们看看这个非数b 内存中的情况
转化成二进制
1 11111111 10000000000000000000000
非数定义,阶码全为1,尾数非0
所以,看到非数的时候,就说明你的程序在运算时出现了这样类似的错误哦!
Ps: ind——indeterminate 不确定的
关于输出不是NaN,是不同编译器处理方式略有不同的缘故
上面我用的是VS2012,原因是当初学C的时候就是用的这个,比较熟悉
后来我去Dev跑了同一段程序,然后就输出了非数
(注意:int 型的分母0在编译阶段就报错了,要浮点数而且分母得要是变量)
顺带给大家看一下我在Java实验的结果
也输出了NaN
综上:
NaN, 非数,定义异常数据
浮点数的一些特殊数值相关推荐
- 整数存储怎么转化为浮点数_非整数值如何存储在浮点数中(以及为什么要浮点数)...
整数存储怎么转化为浮点数 by Shukant Pal 通过Shukant Pal 非整数值如何存储在浮点数中(以及为什么要浮点数) (How non-integer values are store ...
- python中复数的实部和虚部都是浮点数_Python基础:数值(布尔型、整型、长整型、浮点型、复数)...
一.概述 Python中的 数值类型(Numeric Types)共有5种:布尔型(bool).整型(int).长整型(long).浮点型(float)和复数(complex). 数值类型支持的主要操 ...
- 浮点数为何不能进行相等性比较
最近看扎瓦的时候看到了对浮点数的介绍,并且指明浮点数不能进行相等性运算,这个在接触c的时候就知道了, 但是一直不知道为什么.具体的原因不知道也不影响使用,但是不符合我想走的学院派风格,所以大概的看了看 ...
- 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源
在知乎上上看到如下问题: 浮点数精度问题的前世今生? 1.该问题出现的原因 ? 2.为何其他编程语言,比如java中可能没有js那么明显 3.大家在项目中踩过浮点数精度的坑? 4.最后采用哪些方案规避 ...
- Python基础教程:内置类型之数值
Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers).此外,布尔是整数的子类型. 数值 ...
- 【例题+习题】【数值计算方法复习】【湘潭大学】(一)
第一章:引言 目录 第一章:引言 写在前面的话 知识点(重点) 例题(重点) 机器数系(计算机浮点数表示) 有效数字 数值稳定 习题1 1.1(重点) 1.2(重点) 1.3 1.4 1.5 1.6( ...
- python 浮点数精度丢失_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源...
浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源 无论在java python javaScript里面都存在 1+ 2!== 3 问题,这个问题的产生根源在于计算存储数字是二进制,对无限循环小 ...
- c# 取余数 浮点数_浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源
在知乎上上看到如下问题: 浮点数精度问题的前世今生? 1.该问题出现的原因 ? 2.为何其他编程语言,比如java中可能没有js那么明显 3.大家在项目中踩过浮点数精度的坑? 4.最后采用哪些方案规避 ...
- python数值类型教程_Python数值类型 int、float、complex 详解
Python数值类型 int.float.complex 详解 Python数值类型:int.float.complex 在Python程序中,int.float和complex是三种十分重要的数值类 ...
最新文章
- SAP RETAIL商品主数据Basic Data视图里几个让人莫名惊诧的字段
- Alpha 冲刺 (5/10)
- 北大图灵班本科生带来动画CG福音,「最懂骨骼的卷积网络」,无需配对样本实现动作迁移 | SIGGRAPH...
- 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 同时注入普通方法、静态方法、构造方法 )
- 16位代码段与32位代码段的区别
- python十四:全局变量(global)与局部变量与上一级变量(nonlocal)
- String, StringBuilder 与StringBuffer的区别与联系
- 十六、Python操作excel(.xlsx)封装类MyPyExce
- K-近邻算法(KNN)概述
- Sklearn专题实战——针对Category特征进行分类
- OpenJDK 源码阅读之 Java 字节流输入类的实现
- 创客使用Fusion 360 - 制作模型
- 自动刷乐乎邀请码脚本
- 2020年手机上最好的25种免费游戏
- 在android客户端加载html源代码总结
- 常见的数据库有哪些?
- micropython esp8266教程_ESP8266 Micropython – 连接大学Wi-Fi(WPA2 Enterprise PEAP)
- 普通话-命题说话1-10
- OPTICS聚类以及python实现
- python做日历牌,怎么使用python tkinter制作日历?