在計(jì)算機(jī)中,需要對(duì)小數(shù)進(jìn)行計(jì)算,因此需要相應(yīng)的電路支持。支持小數(shù)計(jì)算的電路有兩種:定點(diǎn)部件和浮點(diǎn)部件。定點(diǎn)部件與整數(shù)部件沒(méi)有本質(zhì)區(qū)別,只是要假設(shè)有一個(gè)小數(shù)點(diǎn)存在于某兩位數(shù)之間,計(jì)算時(shí)需要把小數(shù)點(diǎn)對(duì)齊[1]。本文首先介紹浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE754,為后續(xù)浮點(diǎn)部件的電路設(shè)計(jì)做好理論基礎(chǔ)。
一、名詞解釋
IEEE(Institute of Electrical and Electronics Engineers)[2]:電氣和電子工程師協(xié)會(huì)。作為一個(gè)電子類(lèi)工程師,必須對(duì)其有所了解,可以說(shuō)對(duì)她的了解是基本的行業(yè)素質(zhì)。話(huà)說(shuō):一流的企業(yè)做標(biāo)準(zhǔn),二流的企業(yè)做品牌,三流的企業(yè)做產(chǎn)品,IEEE致力于電氣、電子、計(jì)算機(jī)工程和與科學(xué)有關(guān)的領(lǐng)域的開(kāi)發(fā)和研究,在太空、計(jì)算機(jī)、電信、生物醫(yī)學(xué)、電力及消費(fèi)性電子產(chǎn)品等領(lǐng)域已制定了900多個(gè)行業(yè)標(biāo)準(zhǔn),現(xiàn)已發(fā)展成為具有較大影響力的國(guó)際學(xué)術(shù)組織。
IEEE754[3]:IEEE 754標(biāo)準(zhǔn)IEE浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE Standard for Floating-Point Arithmetic)的標(biāo)準(zhǔn)編號(hào),等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC/IEEE 60559。該標(biāo)準(zhǔn)由美國(guó)IEEE計(jì)算機(jī)學(xué)會(huì)旗下的微處理器標(biāo)準(zhǔn)委員會(huì)(Microprocessor Standards Committee, MSC)發(fā)布。IEEE 754 標(biāo)準(zhǔn)規(guī)定了計(jì)算機(jī)程序設(shè)計(jì)環(huán)境中的二進(jìn)制和十進(jìn)制的浮點(diǎn)數(shù)自述的交換、算術(shù)格式以及方法。
浮點(diǎn)數(shù)[4]:浮點(diǎn)數(shù)是屬于有理數(shù)中某特定子集的數(shù)的數(shù)字表示,在計(jì)算機(jī)中用以近似表示任意某個(gè)實(shí)數(shù)。具體的說(shuō),這個(gè)實(shí)數(shù)由一個(gè)整數(shù)或定點(diǎn)數(shù)(即尾數(shù))乘以某個(gè)基數(shù)(計(jì)算機(jī)中通常是2)的整數(shù)次冪得到,這種表示方法類(lèi)似于基數(shù)為10的科學(xué)計(jì)數(shù)法。
二、單精度浮點(diǎn)數(shù)標(biāo)準(zhǔn)
IEEE754標(biāo)準(zhǔn)[5]主要定義了單精度和雙精度這兩種浮點(diǎn)數(shù)的格式。單精度浮點(diǎn)數(shù)用32位二進(jìn)制數(shù)來(lái)表示,而雙精度浮點(diǎn)數(shù)則用64位,雙精度浮點(diǎn)數(shù)相對(duì)于單精度浮點(diǎn)數(shù)主要的作用在于提高了精度。由于單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)標(biāo)準(zhǔn)定義基本相同,這里只介紹單精度浮點(diǎn)數(shù)格式。
IEEE754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù)格式由三部分組成:第31位是符號(hào)位s(Sign),0表示正數(shù),1表示負(fù)數(shù);第30~23位是8位階碼位e(Exponent),用移碼表示,其偏移量為127;第22~0位是23位尾數(shù)f(Fraction),用原碼表示。如下圖1所示:
圖1.IEEE754單精度浮點(diǎn)數(shù)格式
如果0 < e < 255,單精度浮點(diǎn)數(shù)的值為(-1)s×2e-127×1.f,我們稱(chēng)其為規(guī)格化數(shù)。需要注意的是1.f中的1稱(chēng)為隱藏位,其并不占用32位中的任何一位。例如下面這個(gè)浮點(diǎn)數(shù):
1_01111111_11000000000000000000000
該浮點(diǎn)數(shù)值為(-1)1×2127-127×1.11 = -(1+0,5+0,25) = -1.75。
上述是規(guī)格化浮點(diǎn)數(shù)格式,以下有幾種非規(guī)格化浮點(diǎn)數(shù)格式標(biāo)準(zhǔn):
1. e = 0,且f != 0:?jiǎn)尉雀↑c(diǎn)數(shù)的值為(-1)s×2-126×0.f
2. e = 0,且f = 0:?jiǎn)尉雀↑c(diǎn)數(shù)的值為(-1)s×0
3. e = 255,且f != 0:?jiǎn)尉雀↑c(diǎn)數(shù)的值為NaN(Not a Number),例如∞-∞ = NaN
4. e = 255,且f = 0:?jiǎn)尉雀↑c(diǎn)數(shù)的值為(-1)s×∞
雙精度浮點(diǎn)數(shù)格式與單精度浮點(diǎn)數(shù)格式定義類(lèi)似,這里就不再贅述了。
三、參考資料
[1]?李亞民.?計(jì)算機(jī)原理與設(shè)計(jì)——Verilog?HDL版.?北京:清華大學(xué)出版社.?2011
[2]??fromtitle=IEEE&fromid=150905&type=syn.?2015年02月15日
[3]?.?2015年02月15日
[4]??url=bp2fjdfgSOP8-PJwnDgzUbqqpnKxIq4GOnkKZFWnMqWVlHVi2gAUbSeXV8dy2oVjwQ0AARKgQ9DukmhpFBrXcq.?2015年02月15日
[5]?IEEE.?IEEE?Standard?for?Binary?Floating-Point?Arithmetic.?1985
評(píng)論