正則表達(dá)式和EXCESS系統(tǒng)
尾數(shù)部分
? 「尾數(shù)部分」 使用 「正則表達(dá)式」 ,可以將表現(xiàn)形式多樣的浮點(diǎn)數(shù)統(tǒng)一為一種表現(xiàn)形式。
?
例如,十進(jìn)制數(shù)0.75
就有很多表現(xiàn)形式。
雖然他們表示的都是 「同一個(gè)數(shù)值」 ,但因?yàn)楸憩F(xiàn)方法太多,計(jì)算機(jī)在處理時(shí)會(huì)比較麻煩。
因此,需要制定統(tǒng)一的規(guī)則:
?十進(jìn)制數(shù)的浮點(diǎn)數(shù)應(yīng)該遵循:「小數(shù)點(diǎn)前面是0,小數(shù)點(diǎn)后面第一位不能是0」
?
也就是說(shuō),只能用 「尾數(shù)」 部分是0.75
、 「指數(shù)」 部分是0
的方法來(lái)表示。即0.75 × 100
?在二進(jìn)制數(shù)中,我們規(guī)定:「將小數(shù)點(diǎn)前面的值固定為
1
的正則表達(dá)式」?
具體來(lái)講,就是將二進(jìn)制數(shù)表示的小數(shù) 「左移」 或 「右移」 (邏輯移位
)數(shù)次后, 「整數(shù)部分」 的第一位變成1, 「第二位之后都變成0」 。
?而且, 「第一位的
1
在實(shí)際的數(shù)據(jù)中不保存」 ,因此省略該部分后就可以節(jié)省一個(gè)數(shù)據(jù)位,從而可以表示更多的數(shù)據(jù)范圍。?
我們,看一下1011.0011
如何用單精度浮點(diǎn)數(shù)的正則表達(dá)式來(lái)表示 「尾數(shù)部分」 。
指數(shù)部分
「指數(shù)部分」 中使用的是EXCESS
系統(tǒng),使用這種方式主要是 「為了表示負(fù)數(shù)時(shí)不使用符號(hào)位」 。
在某些情況下,在指數(shù)部分,需要通過(guò) 「負(fù)〇〇次冪」 的形式來(lái)表示負(fù)數(shù)。
? 「EXCESS系統(tǒng)」 表現(xiàn)是指,通過(guò)將指數(shù)部分表示范圍的 「中間值」 設(shè)置
0
,使得負(fù)數(shù)不需要用符號(hào)來(lái)表示。?
也就是說(shuō),當(dāng) 「指數(shù)部分」 是8位單精度浮點(diǎn)數(shù)
時(shí),最大值11111111=255
的1/2
,即01111111=127
(小數(shù)部分舍棄)表示的是0
。
我們?cè)賮?lái)一個(gè)例子說(shuō)明。假設(shè)有這樣一個(gè)游戲,用1~13
(A~K
)的撲克牌來(lái)表示負(fù)數(shù)。此時(shí),我們把 「中間」 的7
當(dāng)做0
。那么10
表示+3
,3
表示-4
。
單精度浮點(diǎn)數(shù)指數(shù)部分的EXCESS系統(tǒng)表現(xiàn)
實(shí)際運(yùn)用
我們來(lái)一起看看如何用單精度浮點(diǎn)數(shù)來(lái)表示十進(jìn)制數(shù)0.75
。
- 「符號(hào)位」 :因?yàn)?code>0.75是正數(shù),所以符號(hào)位是
0
0.75
轉(zhuǎn)換成二進(jìn)制正則表示為1.1×2-1
,按照前面介紹的就很容易知道下面的各個(gè)數(shù)值。
- 「指數(shù)部分」 :為
-1
,但是用EXCESS
表示的話,就變成了01111110
。換算為十進(jìn)制為126
。而EXCESS
系統(tǒng)中,126
代表-1
- 「尾數(shù)部分」 :根據(jù)正則表達(dá)式的規(guī)則,小數(shù)點(diǎn)前面的第1位是
1
,因此 「尾數(shù)部分」1000···
實(shí)際上表示的是1.1000···
二進(jìn)制數(shù)和十六進(jìn)制數(shù)關(guān)系
在以 「位」 為單位表示數(shù)據(jù)時(shí),使用二進(jìn)制數(shù)很方便,但如果位數(shù)太多,看起來(lái)很麻煩。因此,在實(shí)際程序中,經(jīng)常用 「十六進(jìn)制數(shù)」 來(lái)替代 「二進(jìn)制數(shù)」 。
在一些高級(jí)語(yǔ)言中,只需要在數(shù)值的開(kāi)頭加上0x
就可以表示十六進(jìn)制數(shù)。
?二進(jìn)制數(shù)的4位,正好相當(dāng)于十六進(jìn)制數(shù)的1位。
?
由此可見(jiàn),通過(guò)使用十六進(jìn)制數(shù),二進(jìn)制數(shù)的位數(shù)能夠 「縮短」 至原來(lái)的1/4
。
用十六進(jìn)制數(shù)表示二進(jìn)制 「小數(shù)」 時(shí),小數(shù)點(diǎn)后的二進(jìn)制數(shù)的4位也同樣相當(dāng)于十六進(jìn)制數(shù)的1位。「不夠4位時(shí)用0填補(bǔ)二進(jìn)制的低位」
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
772瀏覽量
41536 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7295瀏覽量
87533 -
代碼
+關(guān)注
關(guān)注
30文章
4697瀏覽量
68091
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論