精华内容
下载资源
问答
  • 2021-05-22 13:27:57

    C语言中浮点数表示范围浅析

    C语言中浮点数表示范围浅析

    摘 要:浮点数是C语言中的一种数据类型,但在标准C中并没有给出其具体的描述,即数的存储格式及表示范围。部分经典的C语言程序设计教程中给出了浮点数的表示范围,但存在不严谨和值得商榷的地方。结合IEEE754标准,就C语言中浮点数内在存储格式进行分析并给出结论。

    关键词:C语言;浮点数;表示范围

    中图分类号:TP313 文献标识码:A

    Abstract:The float is a data type in C language,but its in standard C and did not give a specific of description:that is the number of storage format and the scope of representation.Part of classically C language programming tutorial gives a range of floating-point represent,but there is not rigorous and need to discussion.Combined IEEE754 standards,provided analyzation and conclusions in C language in internal storage floating-point format.

    Keywords:C language;floating-point;scope of representation

    1 引言(Introduction)

    浮点数运算是科学计算必须面对的问题,由于计算机内部本身不能精确地处理某些整数或小数,因此在运算时可能存在较大的误差,运算结果将直接影响到系统的可靠性和安全性等。C语言因功能强大、程序设计灵活且支持底层应用,在科学计算、数据处理等领域中得到了广泛应用,但C语言在浮点数运算方面也存在数据表示的不精确性等问题。经典C语言并没有对浮点数专门说明,国内很多教材虽述及浮点数,但也只是给出表示范围,对于浮点数的解释尚不够充分,描述尚不够严谨,因此学生在对浮点数的学习过程中经常存在这样或那样理解上的困惑。这里就浮点数的表示范围,结合IEEE754做进一步的分析,为以后浮点数教学和学习给出参考[1]。

    2 浮点数的表示及范围(The range of floating-point and representation)

    总体而言,浮点数的表示形式一般格式指满足一般的二进制数机器码(包括定点整数和定点小数)的规定规则;而IEEE754[2]格式则在一般格式上进一步做了一些约定,以便表示数时比较方便和高效。

    (1)一般表示法

    其主要有两种格式,分别如图1和图2所示。

    一般浮点数尾数采用纯小数(隐含位为0)来表示,即尾数M与定点小数表示方法相同,由于尾数的符号位决定整个浮点数的符号,故有时采用图2的形式;当尾数真值为0(不论阶码何值),或阶码的值比能在机器中表示的最小值还小,计算机把该浮点数看成零值,称为机器零,即浮点数表示不了真值绝对值很接近0的数,只能看成0处理;尾数通常用原码或补码表示,阶码一般用移码或补码表示。因此其表示范围如图3所示。

    3 C语言中浮点数的表示(C language representation of floating point numbers)

    C语言所使用的浮点数符合IEEE754标准,该标准在1985年审核通过,目的是让遵守IEEE标准的机器之间运行的程序可以相互直接移植,另外也让程序员可以轻松写出有用的、鲁棒的浮点数应用程序。

    3.1 IEEE754

    IEEE标准从逻辑上用三元组{S,E,M}表示一个数N[3],如图4所示。

    IEEE标准754规定了三种浮点数格式:单精度、双精度、扩展精度,分别对应C语言里头的float、double和long double。不同的编译系统对long double型的处理方法不同,Turbo c分配16个字节,而Visual C++6.0则分配8个字节。

    单精度:N共32位,其中S占1位、E占8位、M占23位,如图5所示。

    M虽然是23位或者52位,但它们只是表示小数点之后的二进制位数,也就是说,假定 M为“010110011...”,在二进制数值上其实是“.010110011...”。而事实上,标准规定小数点左边还有一个隐含位[4],绝大多数情况下是1,当N对应的n非常小的时候,比如小于2^(-126)(32位单精度浮点数),于是M对应的m最后结果可能是“m=1.010110011.

    更多相关内容
  • 32位浮点数 表示范围

    千次阅读 2019-09-23 15:50:36
    32位浮点数 表示范围 计算机组成原理 enter description here 转载于:https://www.cnblogs.com/Howbin/p/10610603.html

    32位浮点数 表示范围

     

    enter description here
    enter description here

    enter description here
    enter description here

     

    转载于:https://www.cnblogs.com/Howbin/p/10610603.html

    展开全文
  • 非规格化浮点数表示范围

    千次阅读 2020-07-29 19:08:28
    非规格化浮点数表示范围

    非规格化浮点数表示范围

    在这里插入图片描述

    展开全文
  • IEEE754 32位浮点数表示范围

    千次阅读 2017-09-29 11:27:00
    以32位单精度浮点数为例,阶码E由8位表示,取值范围为0-255,去除0和255这两种特殊情况,那么指数e的取值范围就是1-127=-126到254-127=127。 (1)最大正数因此单精度浮点数最大正数值的符号位S=0,阶码E=254,指数...

    6.1浮点数的数值范围

    根据上面的探讨,浮点数可以表示-∞到+∞,这只是一种特殊情况,显然不是我们想要的数值范围。

    以32位单精度浮点数为例,阶码E由8位表示,取值范围为0-255,去除0和255这两种特殊情况,那么指数e的取值范围就是1-127=-126到254-127=127。

    (1)最大正数 
    因此单精度浮点数最大正数值的符号位S=0,阶码E=254,指数e=254-127=127,尾数M=111 1111 1111 1111 1111 1111,其机器码为:0 11111110 111 1111 1111 1111 1111 1111。

    那么最大正数值: 

    PosMax=(1)S×1.M×2e=+(1.11111111111111111111111)×21273.402823e+38


    这是一个很大的数。

     

    (2)最小正数 
    最小正数符号位S=0,阶码E=1,指数e=1-127=-126,尾数M=0,其机器码为0 00000001 000 0000 0000 0000 0000 0000。

    那么最小正数为: 

    PosMin=(1)S×1.M×2e=+(1.0)×21261.175494e38

     

    这是一个相当小的数。几乎可以近似等于0。当阶码E=0,指数为-127时,IEEE754就是这么规定1.0×2127近似为0的,事实上,它并不等于0。

    (3)最大负数 
    最大负数符号位S=1,阶码E=1,指数e=1-127==-126,尾数M=0,机器码与最小正数的符号位相反,其他均相同,为:1 00000001 000 0000 0000 0000 0000 0000。

    最大负数等于: 

    NegMax=(1)S×1.M×2e=(1.0)×21261.175494e38

     

    (4)最小负数 
    符号位S=0,阶码E=254,指数e=254-127=127,尾数M=111 1111 1111 1111 1111 1111,其机器码为:1 11111110 111 1111 1111 1111 1111 1111。

    计算得: 

    转载于:https://www.cnblogs.com/TQCAI/p/7610247.html

    展开全文
  • 如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M为的补码表示,则这种浮点数所能表示的数值范围如下。 最大的整数: 最小的负数: 解析完毕。 说这种解析不太好理解,有两方面.
  • 浮点数表示范围

    千次阅读 2018-03-26 21:39:02
    浮点数表示:用一个定点小数表示小数点后的位数,用一个定点整数(移码)表示指数)
  • 对于浮点数的二级制表示有些凌乱,不懂rt这个应该怎么计算 哪位请帮忙解答一下这个问题,多谢!
  • 1 浮点数的定义 提及浮点数,脑中必然会联想到定点数。所以首先我们看下两者的定义,一探究竟。 在计算机中,数据有两种表达方式:定点数和浮点数,注意,这仅仅是数的两...注:定点数受字长的限制,超出范围会有溢出。
  • 浮点数范围和精度

    千次阅读 2021-07-25 15:51:45
    指数部分决定了浮点数范围。而小数部分的位数决定了精度。(见下图) 单精度中,指数长度为8位,小数部分占23位。由于是有符号型,所以对应的指数范围是-128~128。所以单精度的范围是-2128到2128,约等于-3.40 * 10...
  • 浮点表示 答: 总共24位, m占4位,阶符,数符占2位,剩下的就是 24 - 4 - 2 = 18 位 二. 浮点数的规格化 三. 定点数和浮点数的比较 注: 阶数是6,二进制就是110: 定点机中原码用的是定点表示的0000 111010...
  • 规格化的浮点数及其表示范围

    千次阅读 多人点赞 2020-07-29 19:15:23
    规格化的浮点数及其表示范围
  • 本篇先介绍IEEE754标准中针对浮点数的规范,然后以问答形式补充有关...以32位float数据为例,在内存中的存储形式是1bit的符号位(S),8bit表示指数部分(Exp),23表示小数部分的尾数(Fraction)。表一单精度浮点数...
  • 指出小数点在数据中的位置,决定了浮点数的大小范围 阶码是移码 移码 对于正数,符号位为“1”,其余位不变 如+1110001的阶码为11110001 对于负数,符号位为“0”,其余位取反,最后加“1”(补码的基础上符号位...
  • 编程的时候,有时需要知道两种数据数据表示范围和表示精度,下面给出两种结果的求解过程。 浮点格式 精度和范围与数据的存储格式密切相关,所以我们先来看一看它们的存储格式: 对于float类型的变量,其底层的存储...
  • 1.科学计数法 2.浮点数的表示范围 3.IEEE754浮点数表示
  • 浮点数表示方式 注意:定点数并不是仅仅只能表示整数,定点数也可以表示小数。 浮点数同样可以表示小数和整数;定点数和浮点数只是计算机表示数据的两种不同方式而已。 二、定点数 定点数的意思是:小数点的...
  • 随便记录一下自己学习组成原理的时候 关于浮点数表示范围问题 例: 18位的浮点数,12位尾码(包括符号位),6位阶码(包括符号位)阶码的基数为2。 上面给出来的是正数范围,负数取相反就ok了,对称的。 ...
  • 计算机组成原理--浮点数-原码补码表示范围

    千次阅读 多人点赞 2020-10-15 23:57:50
    看了一晚上,终于从懵逼中走了出来。 规律大概就是,分析绝对值大小,绝对值大的,阶码越大越好,就是最大正数;绝对值小的,阶码越小越好,就是最小负数。 基本知识不解释了,计算机组成原理书上都有,补码移码不...
  • 大家好,今天来介绍浮点型的表示范围C++中浮点型分为float,double和long double型,float.h中定义://the following are the minimum number of significant digits#define DBL_DIG 15 //double#define FLT_DIG 6 /...
  • 32位浮点数范围的求法

    千次阅读 2021-05-22 05:27:58
    话题:32位浮点数范围的求法回答:浮点数在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数...
  • 8位浮点数表示

    千次阅读 2021-09-21 21:41:53
    IEEE754规范中只定义了32位(float)和64位(double)浮点的表示法,好像还有扩展的16位、128位的浮点数表示法,但用的场景不多。 8位浮点数表示法,并没有相关规范,详细内容搜索IEEE754规范,并仔细阅读。 /// +----+-...
  • 汇编学习笔记整理之浮点数表示 鉴于之前学习代码的时候总是因为没有在课后整理笔记并且重新复习而导致知识点掌握不熟练的后果,现在将每次学习的笔记整理至csdn博客中。以便更好的督促自己学习 ```bash 在这里...
  • 定点数和浮点数表示

    千次阅读 2020-07-29 20:44:36
    一般来说定点格式能表示的数值范围有限,单要求处理的硬件简单一些。浮点格式能表示的数的范围很大,但要求处理的硬件比较复杂一些。 定点数: 所谓定点格式,是指小数点位置是固定不变的。定点数的表示方式有两种。...
  • 如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则浮点数表示的数值范围如下。 其实这样理解起来比较好:16位浮点数=阶符1位+阶码值6位+数符1位+尾数8位 上面公式里的R=6+1=7 ...
  • 2019考研408计算机组成原理知识:浮点数表示和运算2018-01-12 17:07|考研集训营2019考研计算机如何来复习呢?文都考研集训营建议参加2019考研计算机的考生可以开始看专业课最基础的知识点啦!今天,文都考研集训营小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,005
精华内容 54,402
关键字:

浮点数的表示范围

友情链接: PwmLCD.zip