专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网

浮点数是什么(c语言浮点数表示规则)

来源:小易整编  作者:小易  发布时间:2023-03-24 12:29
摘要:大家好,我是唐靓。今天是EasyC的第7篇,浮点型。访问github仓库:EasyLeetCode,欢迎明星,欢迎pr~浮点数浮点数是C的第二种基本类型,可以用小数部分表示数字。此外,浮点数的范围比整数大,可以表示更大范围的数字。我们都知...

大家好,我是唐靓。

浮点数是什么(c语言浮点数表示规则)

今天是EasyC的第7篇,浮点型。

访问github仓库:EasyLeetCode,欢迎明星,欢迎pr~

浮点数

浮点数是C的第二种基本类型,可以用小数部分表示数字。此外,浮点数的范围比整数大,可以表示更大范围的数字。

我们都知道,在计算机中,所有的数据本质上都是转换成二进制存储的。整数很简单,转换成二进制后存储01字符串,那么浮点数是怎么存储的呢?

很容易猜到浮点数存储的结果是二进制,但是比直接把整数转换成二进制要复杂一点。需要先用下面一行来表达:

这里,n是我们要存储的浮点数,s是符号位,m是尾数,e是顺序。

符号位很好理解,和整数中的符号位一样,0代表正数,1代表负数。m代表尾数,

。让我们抽象地看一下。我们来看一个例子,比如3.0,转换成二进制(11.0),相当于

1.1 * 2^1。那么,s = 1,m = 1.1,e = 1。

我们知道浮点数的表示,那么它在计算机中是如何存储的呢?这就需要我们进一步分析细节了。

关于M

首先是M,定义为大于等于1小于2的小数。我们可以简单的写成1.xx,其中xx代表小数部分。

由于总是大于等于1小于2,所以它的单位一定是1,所以我们可以省略它,只看它后面的小数部分。我们也用二进制来近似小数部分。比如0.625可以表示为0.5 0.125,也就是2 -1 2-3,二进制就是101,只不过这里它的更高位从-1开始。

以32位浮点数为例。在1位表示符号,8位表示顺序之后,剩下23位用于m。由于我们在小数点之前舍入了1,所以我们的顺序从-1开始,这在理论上相当于24个二进制位。

关于e

在浮点数存储中,e是一个无符号整数。以32位浮点数为例。e有8位,可以代表0-255。

然而,E可以是负的。根据IEEE 754,E的真实值必须是减去一个中间数。对于8位E,它的中间数是127。比如e的实际值是10,但存储时需要存储为127 ^ 10 = 137。

除此之外,E还有另外三种情况:

e不全为0,或全为1时,采用上述的规则表示e全为0时,e等于1-127,有效数字m不再默认加上1,这样是为了还原0.xxx的小数,以及接近于0的数e全为1时,如果有效数字m全为0,表示无穷大,如果m不全为0,表示nan(not a number)

关于E的规则似乎有点复杂,乍一看似乎有点难以理解。为什么要用减去中间值的设计来代替符号位?我仔细考虑后发现,如果引入符号位,很难区分0.xxx和e等于0的情况。虽然也可以通过特殊判断处理,但没有现在这么优雅。

认为看不懂以上的朋友可以直接跳过这一段。毕竟这是浮点数的实现原理,是很低级的内容。C primer对这部分没有太多的阐述。

浮点数的使用

用c语言编写浮点数有两种方法。之一种方法是使用传统的十进制表示法:

double a = 1.23;float b = 3.43;

另一种写法是科学记数法,写为:

double a = 2.45e8;double b = 1e-7;

2.45e8就是2.45 * 10 ^ 8的意思。e后面可以是正数,也可以是负数,但是数字中不能有空。

浮点型

和C一样,C也有三种浮点数:float、double和long double。和integer一样,这三种类型都是浮点数,只是取值范围不同。

浮点数的范围由两部分决定,一部分是有效数字。比如14179是五位有效数,而14000只有两位,因为后三位零是填充位,有效位数不取决于小数点的位置。c要求float通常可以表示7位有效数字,double通常可以有16位,long double至少与double相同。

另外,它们所能表达的指数范围至少是-37到37。一般来说,float是4字节32位,double是8字节64位。当然也要看具体的运行环境。

需要注意的事项

关于浮点数的使用,有几点需要注意。一定要关注他们。

cout输出浮点数会删除结尾的0书写浮点数常量时默认为double类型,如果需要强制表示为float类型,请在结尾加上后缀f或者F,如:2.34f由于浮点数有精度,不能直接判断两个浮点数是否相等,很有可能得不到预期结果,正确的做法是判断精度范围,如:double epsilon = 1e-8;// 判断a是否和b相等if (abs(a - b)

本文地址:生肖运势频道 https://www.neebe.cn/shengxiao/938493.html,励北网一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


生肖运势
小编:小易整编
相关文章相关阅读
  • 表示孤独的诗句 古诗词中的孤独情怀与人生感悟

    表示孤独的诗句 古诗词中的孤独情怀与人生感悟

    中国古诗词中表达孤独的经典诗句,解析柳宗元、李白、杜甫等诗人的孤独情怀,从心理学和文学角度分析孤独的深层含义,帮助现代人理解并接纳孤独的情感体验。...

  • 存量是什么意思(增量和存量是什么意思)

    存量是什么意思(增量和存量是什么意思)

    “存量”是什么意思?“存量”的意思是:指某一指定的时点上,过去生产与积累起来的产品、货物、储备、资产负债的结存数量。注音:cúnliàng英文:stock经济上概念:“存量房”即为“库存待售”的房产。如某年某...

  • sqc是什么意思(餐饮qsc和SQC是什么意思)

    sqc是什么意思(餐饮qsc和SQC是什么意思)

    SQA,SQC是什么意思,有什么区别软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。统计质量控制(SQC-StatisticalQuality...

  • cqi是什么意思(c期是什么意思)

    cqi是什么意思(c期是什么意思)

    CQI是什么意思AQI,空气质量指数(AirQualityIndex)是定量描述空气质量状况的无量纲指数。针对单项污染物的还规定了空气质量分指数。参与空气质量评价的主要污染物为细颗粒物、可吸入颗粒物、二氧化硫、...

  • 以儆效尤是什么意思(以儆效尤是什么意思解释)

    以儆效尤是什么意思(以儆效尤是什么意思解释)

    以儆效尤这个词是什么意思以儆效尤是一个成语,读音是yǐjǐngxiàoyóu,儆:使人警醒,不犯错误;效:仿效,效法;尤:过失。指处理一个坏人或一件坏事,用来警告那些学着做坏事的人。出自《左传·庄公二十一年》...

  • msrp是什么意思(msrp是什么意思$24.00)

    msrp是什么意思(msrp是什么意思$24.00)

    MSRP是什么意思?msrp英[emesɑrpi]美[emesɑrpi]abbr.制造商建议零售价(ManufacturerSuggestedRetailPrice)MSRP:$是...

  • instincts(instincts是什么意思)

    instincts(instincts是什么意思)

    instincts是什么意思instincts英[nstkt]美[nstkt]n.本能,天性,直觉(instinct的名词复数)网络直觉;天性;本能数据来源:金山词霸双语例句柯林斯词...

  • trainees(trainees是什么意思)

    trainees(trainees是什么意思)

    “实习生”的英文怎么说实习生:Trainee中文释义:实习生[shíxíshēng](1)[trainee]∶受训学员,一个受训练准备参加一种工作的人(2)[intern]∶某一专业(如师范)的高年级或刚...