小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

IEEE 浮點表示形式

 skywood 2006-01-22

IEEE 浮點表示形式

Microsoft Visual C++ 與 IEEE 數(shù)值標(biāo)準(zhǔn)一致。存在實數(shù)的三種內(nèi)部變化。在 Visual C++ 中使用 Real*4 和 real*8。Real*4 用字 float 聲明。Real*8 用字 double 聲明。在 Windows 32 位編程中,long double 數(shù)據(jù)類型映射為 double。然而,對使用 real*10 數(shù)據(jù)類型的計算有匯編語言支持。

值如下存儲:

存儲為
real*4 符號位、8 位指數(shù)、23 位尾數(shù)
real*8 符號位、11 位指數(shù)、52 位尾數(shù)
real*10 符號位、15 位指數(shù)、64 位尾數(shù)

在 real*4 和 real*8 格式中,尾數(shù)中有一個假定的前導(dǎo) 1,而它并沒有存儲在內(nèi)存中,因此尾數(shù)實際上是 24 位或 53 位,即使只存儲了 23 位或 52 位。real*10 格式實際存儲此位。

指數(shù)偏離可能值的一半。這表示實際的指數(shù)是從存儲指數(shù)中減去此偏差獲得的。如果存儲指數(shù)小于此偏差,則它實際上是負指數(shù)。

指數(shù)如下偏離:

指數(shù) 偏離量
8 位 (real*4) 127
11 位 (real*8) 1023
15 位 (real*10) 16383

這些指數(shù)不是 10 的冪;它們是 2 的冪。也就是說,8 位存儲指數(shù)最多可以為 127。值 2**127 大約等于 10**38,這是 real*4 的實際限制。

尾數(shù)被存儲為 1.XXX... 形式的二進制分數(shù)。. 此分數(shù)有一個大于或等于 1 且小于 2 的值。注意實數(shù)總是以規(guī)范化形式存儲;即尾數(shù)左移以使尾數(shù)的高序位總是 1。因為該位總是 1,所以在 real*4 和 real*8 格式中采用(而不是存儲)它。假定二進制(不是十進制)點剛好在前導(dǎo) 1 的右邊。

因此,各種大小的格式如下:

格式 字節(jié) 1 字節(jié) 2 字節(jié) 3 字節(jié) 4 ... 字節(jié) n
real*4 SXXX XXXX XMMM MMMM MMMM MMMM MMMM MMMM    
real*8 SXXX XXXX XXXX MMMM MMMM MMMM MMMM MMMM ... MMMM MMMM
real*10 SXXX XXXX XXXX XXXX 1MMM MMMM MMMM MMMM ... MMMM MMMM

S 表示符號位,X 是指數(shù)位,M 是尾數(shù)位。注意最左邊的位在 real*4 和 real*8 格式中被采用,但它在 real*10 格式的字節(jié) 3 中以 1 表示。

若要適當(dāng)?shù)刈儞Q二進制點,首先取消階碼,然后將二進制點向左或向右移動適當(dāng)?shù)奈粩?shù)。

示例

下面是 real*4 格式的一些示例:

  • 在下面的示例中,符號位是零,存儲指數(shù)是 128,以二進制表示則為 100 0000 0,即 127 加 1。000 0000 ... 存儲尾數(shù)是 (1.)000 0000 ... 0000 0000,它有一個隱含的前導(dǎo) 1 和二進制點,因此實際的尾數(shù)是 1。
                        SXXX XXXX XMMM MMMM ... MMMM MMMM
    2   =  1  * 2**1  = 0100 0000 0000 0000 ... 0000 0000 = 4000 0000
  • 除了設(shè)置符號位外與 +2 相同。這適用于所有 IEEE 格式的浮點數(shù)。
    -2  = -1  * 2**1  = 1100 0000 0000 0000 ... 0000 0000 = C000 0000
  • 尾數(shù)相同,指數(shù)增加 1(偏差值是 129 或者二進制的 100 0000 1)。
    4  =  1  * 2**2  = 0100 0000 1000 0000 ... 0000 0000 = 4080 0000
  • 指數(shù)相同,尾數(shù)大一半 — 它是 (1.)100 0000 ...0000 0000,由于這是二進制分數(shù),即 1 1/2(分數(shù)位數(shù)的值是 1/2、1/4、1/8 等等)。
    6  = 1.5 * 2**2  = 0100 0000 1100 0000 ... 0000 0000 = 40C0 0000
  • 指數(shù)與其他 2 的冪相同,尾數(shù)是 127 或二進制的 011 1111 1 處小于 2 的 1。
    1  = 1   * 2**0  = 0011 1111 1000 0000 ... 0000 0000 = 3F80 0000
  • 階碼是 126(它是二進制中的 011 1111 0),尾數(shù)是 (1.)100 0000 ... 0000 0000,表示 1 1/2。
    .75 = 1.5 * 2**-1 = 0011 1111 0100 0000 ... 0000 0000 = 3F40 0000
  • 除了在尾數(shù)中設(shè)置表示 1/4 的位,完全與 2 相同。
    2.5 = 1.25 * 2**1 = 0100 0000 0010 0000 ... 0000 0000 = 4020 0000
  • 1/10 在二進制中是重復(fù)的分數(shù)。尾數(shù)害怕 1.6,而階碼假定 1.6 被 16 除(它是二進制中的 011 1101 1,十進制中是 123)。實際的指數(shù)是 123 – 127 = –4,表示乘法因數(shù)是 2**–4 = 1/16。請注意,存儲尾數(shù)在最后一位被舍入(嘗試盡可能精確地表示無法表示的數(shù))。(1/10 和 1/100 在二進制中表示不嚴格的原因類似于 1/3 在十進制中表示不嚴格的原因。)
    0.1 = 1.6 * 2**-4 = 0011 1101 1100 1100 ... 1100 1101 = 3DCC CCCD
  • 0 = 1.0 * 2**-128 = all zeros--a special case.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多