Floating point 什么';单精度浮点运算和双精度浮点运算的区别是什么?

Floating point 什么';单精度浮点运算和双精度浮点运算的区别是什么?,floating-point,precision,processor,operations,Floating Point,Precision,Processor,Operations,单精度浮点运算和双精度浮点运算有什么区别 我对电子游戏机的实用术语特别感兴趣。例如,任天堂64是否有64位处理器?如果有,是否意味着它能够进行双精度浮点运算?PS3和Xbox 360可以进行双精度浮点运算,还是只能进行单精度运算?通常使用的是双精度功能(如果有的话)。基本上,浮点运算处理32位浮点数,而处理64位浮点数 双精度的位数增加了可存储的最大值,也增加了精度(即有效位数)。好的,机器的基本区别是双精度使用的位数是单精度的两倍。在通常的实现中,32位表示单精度,64位表示双精度 但这意味着

单精度浮点运算和双精度浮点运算有什么区别

我对电子游戏机的实用术语特别感兴趣。例如,任天堂64是否有64位处理器?如果有,是否意味着它能够进行双精度浮点运算?PS3和Xbox 360可以进行双精度浮点运算,还是只能进行单精度运算?通常使用的是双精度功能(如果有的话)。

基本上,浮点运算处理32位浮点数,而处理64位浮点数


双精度的位数增加了可存储的最大值,也增加了精度(即有效位数)。

好的,机器的基本区别是双精度使用的位数是单精度的两倍。在通常的实现中,32位表示单精度,64位表示双精度

但这意味着什么?如果我们假设IEEE标准,那么一个单精度数字的尾数约为23位,最大指数约为38;双精度的尾数有52位,最大指数约为308

与往常一样,详细信息位于。

注意:的确有64位处理器,但是:

许多游戏利用了芯片的32位处理模式,因为64位数据类型提供的更高数据精度通常不是3D游戏所需的,而且处理64位数据使用的RAM、缓存和带宽是3D游戏的两倍,从而降低了系统的整体性能

发件人:

“双精度”一词有点用词不当,因为精度并不是真正的双精度。
double一词来源于双精度数字使用的位数是常规浮点数的两倍。
例如,如果一个单精度数字需要32位,则其双精度对应项的长度将为64位

额外的位不仅增加了精度,还增加了可以表示的量级范围。
精度和幅度范围的确切增加量取决于程序用于表示浮点值的格式。
大多数计算机使用一种称为IEEE浮点格式的标准格式

IEEE双精度格式的精度实际上是单精度格式的两倍多,范围也大得多

单精度

IEEE单精度浮点标准表示法需要一个32位字,可以表示为从0到31、从左到右的数字

  • 第一位是符号位,S
  • 接下来的八位是指数位,“E”和
  • 最后23位是分数“F”:

    S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
    0 1      8 9                    31
    
    S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    0 1        11 12                                                63
    
由单词表示的值V可按如下方式确定:

  • 如果E=255且F为非零,则V=NaN(“非数字”)
  • 如果E=255,F为零,S为1,则V=-无穷大
  • 如果E=255,F为零,S为0,则V=无穷大
  • 如果
    0关于“ps3和xbxo 360是否可以执行双精度浮点运算或仅执行单精度运算,通常使用的是双精度功能(如果存在的话)。”


    我相信这两种平台都不能使用双浮点。最初的Cell处理器只有32位浮点,与XBox 360所基于的ATI硬件(R600)相同。后来,该单元获得了双浮点支持,但我很确定PS3没有使用这种芯片。

    双精度意味着数字需要两倍于字长的存储时间。在32位处理器上,字都是32位,所以双精度是64位。就性能而言,这意味着对双精度数字的操作需要更长的时间才能执行。所以你得到了一个更好的射程,但对性能有一点影响。硬件浮点单元稍微减轻了这种影响,但它仍然存在

    N64使用基于MIPS R4300i的NEC VR4300,它是一个64位处理器,但处理器通过32位宽总线与系统的其余部分通信。因此,大多数开发人员使用32位数字是因为它们速度更快,而且当时大多数游戏不需要额外的精度(因此他们使用浮点而不是双倍)


    这三种系统都可以执行单精度和双精度浮点运算,但由于性能原因,它们可能无法执行。(尽管n64使用32位总线之后,几乎所有的事情都是如此…)

    单精度数字使用32位,MSB为符号位,而双精度数字使用64位,MSB为符号位

    单精度

    seeeeeeefffffffffffffffffffff.(符号+指数+有效位)

    双精度:


    seeeeeeeefffffffffffffffffffffffffffffffffffffffffffffffffffff.(符号+指数+有效位)
    我读了很多答案,但似乎没有一个能正确解释double这个词的来源。我记得几年前一位大学教授给了我一个很好的解释

    回想一下VonC的答案,单精度浮点表示法使用32位字

    • 1位表示符号,S
    • 8位表示指数“E”
    • 24位表示分数,也称为尾数,或系数(即使只表示23位)。让我们称它为“M”(对于尾数,我更喜欢这个名字,因为“分数”可能会被误解)
    代表:

              S  EEEEEEEE   MMMMMMMMMMMMMMMMMMMMMMM
    bits:    31 30      23 22                     0
    
               S  EEEEEEEEEEE   MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
    bits:     63 62         52 51                                                  0
    
    (只是为了
               S  EEEEEEEEEEE   MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
    bits:     63 62         52 51                                                  0
    
    1.9 is less precise than 1.99
    1.99 is less precise than 1.999
    1.999 is less precise than 1.9999