`
starbhhc
  • 浏览: 655519 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

浮点数的0和无穷表示法

阅读更多
浮点数的0和无穷表示法



        浮点数的表示随机器的不同而不同,最常见的一种形式是ieee-754标准。这个标准很流行,值得我们深入的研究一下。你可以在你的平台上寻找ieee754.h文件来查看相关信息。
一个ieee-754的float(4 bytes)或者double(8 bytes)由三部分构成(在ieee-854标准下还有一个类似的96bit的扩展精度格式):一个符号位说明这个数是正还是负,一个指数给出了它的数量级和一个尾数给出了实际的数字。用单精度浮点数(float)作为例子,下面是它的位结构。
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
31                              0    bit #

        s = 符号位, e = 指数, m = 尾数

        这个数的值是尾数的2的x次方倍,这里的x是上面的eeeeeee,即指数。注意我们正在处理的是二进制片段,做好二进制,十进制,十六进制互相转换的准备。
对于存储尾数和指数存在一个潜在的问题:2x10^-1 = 0.2x10^0 = 0.02x10^1等。这对于同一数字将导致许多不同的位模式表示方式,并且因此可能造成巨大的浪费(可能使硬件实现数学运算变得困难并且变慢),因为此时一个数可能会有很多种表示方式。这个问题可以通过将尾数解释为小数点后面的部分并且隐含的在小数点的前面是1这种方式来解决(二进制)。现在将这种方式称为\"1.m\"表示法。比如尾数1000表示1.1000,也就是十进制的1.5,在后面将给出实际的例子,有助于理解。尾数部分决定了以后,剩下的工作就是设置正确的指数部分来重新构造原来的数。

        但是0怎么办?ieee标准委员会将0看做一种特殊情况:忽略符号位如果每一位都是0,那么这个数被看做0.

        到现在,看上去我们还没有办法表示比1.0小的数(注:因为全是0的方案被0这个数占据了)。解决的方法是不直接解释指数位。一个单精度的浮点数采用\"shift-127\"编码,意思是实际的指数是eeeeeeee减掉127.也就是将eeeeeeee看做有符号的数。

         0不是唯一的特殊情况的浮点数。还有正无穷、负无穷和非数字值。这些是如何表示的?如果指数的每一位都被设置,那么这个数就被认为是无穷大的,如果指数位的每一位都被设置,并且尾数位的任意一位被设置,那么这个数被定义为nan.对上面的数来说,符号位仍然是有效的。可以是正也可以是负无穷,可以是正nan,也可以使负nan.

分享到:
评论

相关推荐

    4.15实验-浮点数的表示及运算

    本实验将深入探讨浮点数的表示方法和运算过程,这对于理解计算机内部如何处理数值至关重要。 一、浮点数的表示 浮点数在计算机中的存储方式不同于整数,它采用了科学计数法的原理。一个浮点数通常由三部分组成:...

    浮点数(单精度浮点数,双精度浮点数)

    浮点数的表示法通常还包括一些特别的数值:+∞和 -∞(正负无穷大)以及 -NaN('Not a Number')。无穷大用于数太大而无法表示的时候,NaN 指示非法操作或者无法定义的结果。 在 C++ 中,浮点数有六种:float(单...

    计算机组成原理浮点数表示及运算PPT课件.pptx

    本PPT课件主要介绍了计算机组成原理中的浮点数表示和运算。浮点数是一种特殊的数值表示形式,它可以用来表示很大的数值范围,是计算机科学中的重要概念。 浮点数的表示形式可以写成 N = Re × m = 2E × M = 2±e ...

    浮点数在计算机中的表示法.pdf

    总的来说,浮点数在计算机中的表示是通过科学记数法的变体实现的,使用有限的二进制位来编码尾数、指数和符号。这种表示方式允许计算机处理广泛范围的数值,同时在有限的存储空间内保持一定程度的精度。不同精度的...

    浮点数表示方法1

    在C语言中,浮点数可以用十进制表示法(如1.23,-4.56)或者指数形式表示法(如1.23e-4,5.67E+3)。浮点类型包括float(单精度)、double(双精度)和long double(长双精度)。float通常有6到7位有效数字,double...

    浮点数的表示和解释,比较全面

    浮点数表示法通过灵活的小数点位置和分段表示的方式,极大地扩展了计算机处理实数的能力。IEEE 754标准的提出进一步规范了浮点数的表示和运算,提高了数值计算的准确性和效率。规格化浮点数和相关的操作规则则是实现...

    浮点数规格化★★★.doc

    浮点数规格化是指IEEE754浮点数规格化表示法,旨在规范化浮点数的表示形式,使其能够在不同的计算机系统之间正确地传输和存储。 首先,IEEE754浮点数规格化形式是对传统规格化形式的进一步严格要求。IEEE规格化形式...

    浮点数的计算方法

    - **无穷大**:当指数全为1且尾数全为0时,表示正无穷大或负无穷大。 - **非数字(NaN)**:当指数全为1但尾数不全为0时,表示非法的计算结果。 #### 四、浮点数的运算方法 浮点数的运算包括加减乘除等基本运算,...

    浮点数计算与误差分析

    在IEEE 754标准中,通常采用偏移表示法,即阶码加上一个固定的偏移量。 - **尾数(M)**:表示基数后面的部分,决定了浮点数的精度。 #### 三、浮点数的存储格式 - **单精度浮点数(float)**:总长度32位,包括1位...

    浮点数开方.rar

    在计算机内部,浮点数通常按照IEEE 754标准进行存储和操作,这种标准定义了如何表示正负无穷大、非数字(NaN)以及不同精度的浮点数。 浮点数开方是指求一个浮点数的平方根,即找到一个数x,使得x的平方等于原浮点数...

    深入浅出浮点数

    浮点数的核心概念包括尾数、基数、指数和符号,类似于科学计数法。尾数(Mantissa或有效数字)是小数部分,基数(Base)通常是2(二进制)或10(十进制),指数(Exponent)调整小数点的位置,符号(Sign)决定数的...

    IEEE754浮点数乘法设计

    这个标准定义了浮点数的存储布局、表示方法以及相关的运算,包括加法、减法、乘法和除法等。本文将深入探讨根据IEEE754标准实现浮点数乘法的过程,以及如何使用C语言来实现这一操作。 **浮点数的IEEE754表示** ...

    IEEE754浮点数与十进制数互相转换原理分析

    在计算机科学中,IEEE754标准是用于表示浮点数的一种国际标准,它定义了浮点数的存储格式,使得不同计算机系统之间可以一致地表示和交换浮点数值。这个标准广泛应用于各种编程语言和硬件平台,包括处理器、GPU以及...

    IEEE754浮点数详解.doc

    IEEE754浮点数标准是一种广泛应用于计算机系统中的浮点数表示法,它定义了浮点数的存储格式以及基本运算规则。这一标准由IEEE(电气与电子工程师协会)于1985年首次发布,并在后续版本中进行了修订和完善。IEEE754...

    算法-计算浮点数相除的余(信息学奥赛一本通-T1029)(包含源程序).rar

    4. **处理无穷大和NaN**:浮点数运算可能产生无穷大(Infinity)或非数字(NaN),在处理这些特殊情况时需要特别注意。 5. **编程实现**:在实现算法时,可以选择使用不同的编程语言,如C++、Python或Java等。每种...

    IEEE浮点数标准IEEE754

    浮点数的基本表示形式遵循科学记数法的原则,可以表示为:`±mantissa × 2^exponent`。其中: - **符号位**(Sign Bit):用来表示浮点数的正负。 - **指数部分**(Exponent):用来表示基数2的幂次。 - **尾数部分...

    浮点数和各进制数相互装化

    二进制表示法对于计算机来说是最基础的,浮点数需要被转换为二进制形式才能在硬件上进行计算。这个过程涉及到指数的转换和尾数的二进制表示。例如,一个十进制的浮点数3.14,转换为二进制会先将整数部分转换,然后将...

    4.9浮点数的表示与算术运算算法1

    特别是在除法运算中,可能会因为浮点数的不精确表示导致结果有微小的差异。此外,浮点数的运算顺序也会影响结果,因为计算机按照二进制的规则执行运算,而非人类习惯的十进制。 验证过程中,需要分析浮点运算的适用...

Global site tag (gtag.js) - Google Analytics