浮点数(单精度、双精度数)的有效位
浮点数7位有效数字。
双精度数16位有效数字。
浮点数取值范围:
负数取值范围为 -3.4028235E+38 到 -1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。
双精度数取值范围:
负值取值范围-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。
C/C++中浮点数的表示遵循IEEE 754标准。
一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M(如下)。
Float
S--------E-------M
1位-----8位-----23位
Double
S--------E-------M
1位-----11位----52位
浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。
单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。
双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位。
浮点数的标准二进制数值表示:
IEEE 754
短浮点数和有符号整型一样,符号位是1,表示负数;符号位是0,表示正数。
指数位部分既可表示正指数又可表示负指数。因此,指数位部分通过实际指数值加上偏差值127的方法计算。例如:实际指数值为-15,该浮点数的指数位值是112。由于偏差值的作用,实际指数值的有效范围为-127到128。
有效位表示标准二进制数值的分数部分。标准二进制数值大于1小于10并包含小数部分。小数部分很重要,因此被包含在浮点数格式中。标准值通常都大于1,因此格式中无需包含1。
下文为将一个十进制数字转换成短浮点数值的实例。
实例: 22.625
22 = (10110)2
0.625 = (.101)2
10110.101 = 1.0110101 x 2^4 (标准值)
符号位 = 0 (正数)
指数位 = 4 + 127 = 131 = 10000011
有效位 = 0110101[16个零]
短浮点数 = 0 10000011 0110101[16个零]
如果将一个短浮点数值转换成十进制数值,应用如等式1-1。
数值 = (-1)^符号位x [1 + (有效位/2^23)] x 2^(指数位 –127)
浮点数(单精度、双精度数)的有效位相关推荐
- 单精度浮点数和双精度浮点数_浮点数和双精度数之间的区别
单精度浮点数和双精度浮点数 Here you will learn about difference between float and double i.e. float vs double. 在这 ...
- c语言中单精度的有效位数是,C语言中的单精度双精度数的有效位数
#include "stdio.h" #include "conio.h" void main() { printf("%.20f\n",0 ...
- 浮点数单精度双精度存储
浮点数如何存储 C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit.单精度类型 ...
- c语言两个浮点数相加_C语言中两个浮点数或双精度数的模数
c语言两个浮点数相加 As we know that modules also known as the remainder of the two numbers can be found using ...
- 单精度在计算机中的存储,浮点数(单精度浮点数与双精度浮点数)在计算机中的存储...
浮点数在计算机中的存储 十进制浮点数格式: 浮点数格式使用科学计数法表示实数.科学计数法把数字表示为系数(coefficient)(也称为尾数(mantissa)),和指数 (exponent)两部分 ...
- 浮点数双精度,单精度以及半精度知识总结
最近工作中遇到一个16位半精度浮点数的问题,纠结了很久,特此研究了一下,总结在此: 1.单精度(32位)浮点数的结构: 名称 长度 比特 位置 符号位 Sign(S): 1bit (b31 ...
- c语言单精度浮点数规格化,对浮点数的一些理解
浮点数的范围和有效位 对于浮点数,其能表示的数值范围和其有效位如下 类型 比特位 数值范围 有效位 float 32 -3.410^38-+3.410^38 6~7位 double 64 -1.710 ...
- matlab的单精度浮点数,浮点数的表示和精度_单精度浮点数的表示
浮点数的表示和精度 如果a>0,那么1+a一定大于1吗?在数学上,答案是肯定的.但在计算机上,答案就与a的大小和浮点数的精度有关了.在matalb上,可以作以下计算: >> a=1/ ...
- 单精度浮点数存储、双精度浮点数存储
单精度浮点数存储 其中最高位为符号位S:0代表 +,1代表-,E为指数位,M有有效位 例如: 那如果此时我的指数是一个负数呢? 这里IEEE还有特别规定: 有效数字M: M可以写成1.×××,其中×× ...
最新文章
- 构建之法课后作业第二次作业第一题
- 《HttpClient官方文档》2.1 连接持久性-2.2 HTTP连接路由
- w7计算机的工具栏爱那里,Win7系统如何在任务栏中添加爱心图标图文教程
- 隐函数画图with R
- 为什么 Django 框架持续统治着 Python 开发?
- OGC之路(1) 之 WMS标准学习总结
- Android之build.gradle配置签名
- 21副酷炫的动图让你了解各种数学概念
- python中的super用法详解_Python中super函数用法实例分析
- vuejs项目如何修改node_mudule为公用文件?
- 浅谈jQuery宽高及其应用
- 给vc6对话框添加菜单
- 使用高通解析ramdump tool 遇到的问题
- 计算机上自带的打字游戏,Steam这款打字游戏,让多少人想起自己曾经学校上电脑课的日子?...
- 计算机网络的硬件系统包含那些部件,计算机的硬件系统主要包括哪五大部件
- XSS盗取用户信息实验(详细)及xss之旅闯关
- 什么是系统时钟?什么是时钟系统?时钟系统有什么作用?
- ESXi8.0中NVME硬盘不识别解决方法1,设置直通
- android animation
- C语言中经典算法——斐波那契数列的几种算法
热门文章
- java 正序a~z_2019届vivo秋招笔试题【字符串排序】【链表奇数位正序偶数位逆序】【最长回文子串】...
- c++ map取值的find、[]、at方法特性对比
- 马化腾传奇之一“我们从来没有认为自己是领袖”
- ZBrush教程视频教程-ZBrush教程教程下载
- Python入门必须知道的11个知识点!
- 怎样将dwg格式转换成pdf?
- PHP用数组遍历新闻列表,php数组遍历_php
- 不刷单,中小卖家如何提升店铺流量?
- sysbench cpu 性能测试
- V-Ray太阳光使用教程分享