定點整數(shù) [1]在計算機中,,根據(jù)小數(shù)點固定的位置不同,定點數(shù)有定點(純)整數(shù)和定點(純)小數(shù)兩種,。若階碼J=0,尾數(shù)S為純整數(shù),,此時,小數(shù)點固定在數(shù)的最低位之后,則稱其為定點整數(shù),。
定點整數(shù)的小數(shù)點完全靠事先約定而隱含在不同位置。
如下圖所示:
階碼百科名片在機器中表示一個浮點數(shù)時需要給出指數(shù),,這個指數(shù)用整數(shù)形式表示,,這個整數(shù)叫做階碼,階碼指明了小數(shù)點在數(shù)據(jù)中的位置,。 簡介階碼:對于任意一個二進制數(shù)n,,可用N=S×2P表示,其中S為尾數(shù),,P為階碼,,2為階碼的底,P,、S都用二進制數(shù)表示,,S表示N的全部有效數(shù)字,P指明小數(shù)點的位置,。當階碼為固定值時,數(shù)的這種表示法稱為定點表示,,這樣的數(shù)稱為“定點數(shù)”,;當階碼為可變時,數(shù)的這種表示法稱為浮點表示,,這樣的數(shù)稱為“浮點數(shù)”,,這在前面已有介紹。定點數(shù)表示法通常定點數(shù)有兩種表示法,,均設P=0,,小數(shù)點是隱含的,若數(shù)值部分為n位: 當S為純整數(shù)時,,此時定點數(shù)只能表示整數(shù),,所能表示的N范圍是(2n-1)≥N≥-(2n-1);當S為純小數(shù)時,,此時定點數(shù)只能表示小數(shù),,所能表示的N范圍是(1-2-n)≥N≥-(1-2-n)。 實際數(shù)值不一定都是純整數(shù)或純小數(shù),,運算前可選擇比例因子,,使所有原始數(shù)據(jù)化成純小數(shù)或純整數(shù),,運算后再用比例因子恢復成實際值。BCD碼總述通常,,我們習慣用十進制數(shù)表示數(shù)據(jù),,但計算機是用二進制數(shù)來表示數(shù)據(jù)的,這就需要進行數(shù)值進制之間的轉(zhuǎn)換,。我們把每位十進制數(shù)轉(zhuǎn)換二進制數(shù)的編碼,,簡稱為BCD碼(BinaryCodedDecimal)。BCD編碼具有二進制數(shù)的形式以滿足數(shù)字系統(tǒng)的要求,,又具有十進制數(shù)的特點,。在某些情況下,計算機也可以對這種形式的數(shù)直接進行運算,。 它是一種數(shù)字壓縮存儲編碼,,一個字節(jié)有8位,而數(shù)字0到9最多只需要使用4位,,如果用一個字節(jié)來存儲一個數(shù)字相對就會有一定的浪費,,尤其是在傳輸過程中,由此人們就想出了壓縮的辦法,,就是BCD編碼,。 BCD編碼將一個字節(jié)的8位拆分成高4位和低4位兩個部分,也就是說一個字節(jié)能存儲兩個數(shù)字,。所以BCD的編碼過程就是將數(shù)字壓縮的過程,,將兩個字節(jié)的數(shù)字壓縮成一個字節(jié)。反之,,解碼就是把一個字節(jié)的數(shù)字拆分為兩個數(shù)字單獨存放(大部分的處理都是按字節(jié)處理的),。編碼方法8421BCD編碼 這是一種使用最廣的BCD碼,是一種有權碼,,其各位的權分別是(從最有效高位開始到最低有效位)8,、4、2,、1(即23,、22、21,、20),,因而稱為“8421BCD編碼”。 在使用8421BCD碼時一定要注意其有效的編碼僅十個,,即:0000~1001,。4位二進制數(shù)的其余6個編碼1010、1011,、1100,、1101,、1110、1111不是有效編碼,。8421BCD編碼如表2-3所示,。這種BCD編碼實際上就是0~9的“等值”二進制數(shù)。 2421BCD編碼 2421BCD碼也是一種有權碼,,其從高位到低位的權分別為2,、4、2,、1(同樣也是它得名的原因),,其也可以用4位二進制數(shù)來表示1位十進制數(shù)。 余3碼 余3碼也是一種BCD碼,,但它是無權碼,。但由于每一個碼對應的8421BCD碼之間相差3,故稱為余3碼,,其一般使用較少,,故只須作一般性了解。 用BCD碼進行進制的轉(zhuǎn)換時,,要求在兩種進制的表現(xiàn)形式上快速轉(zhuǎn)換,,而不是要求在“數(shù)值相等”的含義快速轉(zhuǎn)換。 例如求十進制數(shù)2000的BCD編碼和其二進制數(shù),。 2000的BCD編碼是把每位上的數(shù)2,、0、0,、0分別轉(zhuǎn)換為其對應的BCD編碼:0010,、0000、0000和0000,,把它們合在一起就是2000的BCD編碼:0010000000000000。 十進制數(shù)2000的二進制數(shù)是:11111010000,,它們在數(shù)值上是相等的,。 將十進制數(shù)86.5轉(zhuǎn)換為BCD碼,最終的結果是:(10000110.0101)BCD,。 將BCD碼10010111.0100轉(zhuǎn)換為十進制數(shù)的結果是:97.4,。 在IBMPC機中,根據(jù)在存儲器中的不同存放格式,,BCD碼又分為: 壓縮型BCD碼:一個字節(jié)中存放兩個十進制數(shù)碼,。 非壓縮型BCD碼:每個字節(jié)只存放一個十進制數(shù)。 例如:將十進制數(shù)8762用壓縮型BCD碼表示,,則為:1000011101100010,。移碼表示浮點數(shù)時還常用一種稱為移碼的碼制,。浮點數(shù)的階碼表示指數(shù)大小,有正有負,,為避開階碼的符號,,對每個階碼都加上一個正的常數(shù)(稱偏移常數(shù)),使能表示的所有階碼都為正整數(shù),,變成“偏移”了的階碼,,又稱“增碼”。移碼的值不小于0,,這樣階碼總為0,,可以取消,浮點數(shù)小數(shù)點的實際位置由移碼減去偏移常數(shù)來決定,。 一個實數(shù)可表示成一個純小數(shù)與一個乘冪之積,。如1011.101=0.1011101×2100;–0.0010011=–0.10011×2-10,;–110001101=–0.110001101×21001,。 一個任意實數(shù),在計算機內(nèi)部可以用指數(shù)(為整數(shù))和尾數(shù)(為純小數(shù))來表示,,用指數(shù)和尾數(shù)表示實數(shù)的方法稱為浮點表示法,。 浮點數(shù)的長度可以是32位、64位甚至更長,,分階碼和尾數(shù)兩部分,。階碼位數(shù)越多,可表示的數(shù)的范圍越大,;尾數(shù)越多,,所表示的數(shù)的精度越高。“移碼”用來表示浮點型小數(shù)的階碼,。對于正數(shù),,符號位為“1”,其余位不變,,如+1110001的階碼為11110001,;對于負數(shù),符號位為“0”,,其余位取反,,最后加“1”,如–1110001的階碼為00001111,。 移碼與補碼的關系是符號位互為反碼,,例如:X=+1011時,[X]移=11011,[X]補=01011,;X=–1011時,,[X]移=00101,[X]補=10101,。 注意:對移碼運算的結果需要加以修正,,修正量為2n,即對結果的符號位取反后才是移碼形式的正確結果,。移碼表示中,,0有唯一的編碼——1000…00,當出現(xiàn)000…00時(表示–2n),,屬于浮點數(shù)下溢,。 |
|