中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > C/C++
关于实数的数值范围和有效数字位数
作者:未知 时间:2005-09-13 19:28 出处:ChinaUnix.net 责编:chinaitpower
              摘要:关于实数的数值范围和有效数字位数

关于C/C++里,实数的数值范围和有效数字位数是由什么来确定的?
比如:32位的机里,基本位32位。而浮点数的位数怎么确定的呢?
一般情况下,单精度浮点数的有效位数是7位,双精度的有效位数是17位,这是根据什么来确定的。

谢谢!

 FH 回复于:2004-06-09 15:02:05
单精度:2^24>10^7

 whyglinux 回复于:2004-06-09 15:39:20
[quote:65664ab852="Jerrybuct"]关于C/C++里,实数的数值范围和有效数字位数是由什么来确定的?
比如:32位的机里,基本位32位。而浮点数的位数怎么确定的呢?
一般情况下,单精度浮点数的有效位数是7位,双精度的有效位数是17位,这是根据什么来..........[/quote:65664ab852]

C/C++中浮点数的表示遵循IEEE 754标准。一个浮点数由三部分组成:符号位S、指数部分E(阶码)以及尾数部分M(如图)。十进制数的换算计算公式为(n^m表示n的m次幂,B表示前面的数字是二进制):
[code:1:65664ab852]
S * 2^(E-127) * (1.M)B
[/code:1:65664ab852]
浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。

单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。

双精度的尾数用52位存储,2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以双精度的有效位数是16位,而不是你说的17位。但是因为这个数字很接近10^17,你说双精度数有17位有效数字的正确性为100%。



IEEE 754 浮点数格式


 win_hate 回复于:2004-06-09 18:14:53
good

 不要爱人 回复于:2004-06-12 16:08:09
对与3楼所说的公式我到现在还是不懂,有没有办法在详细一点了?

 whyglinux 回复于:2004-06-12 16:47:45
举一个线程的例子说明浮点数的算法:
S        [color=red:9c8ac2341d]E[/color:9c8ac2341d]                                  M
1 [color=red:9c8ac2341d]100 0001 1[/color:9c8ac2341d] 001 0110 00000000 00000000

与之对应的十六进制整数为 0xc1960000。

已知:
S = -1 (如果S位为0代表正数,为1代表负数)
E = 10000011B = 131D
1.M = 1.001011B = ( 1 + 11/64)D

根据计算公式:
S * 2^(E-127) * (1.M)B  = -1 * 2^(131-127) * (1 + 11/64) = -18.75

所以这四个字节如果用来表示单精度浮点数的话,其值为 -18.75D。

 alarum 回复于:2004-06-12 17:44:59
感兴趣的话可以看一下组成原理

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有