移碼的再總結

2021-07-24 07:24:19 字數 2233 閱讀 8818

@(組成原理)

在總結原碼,反碼,補碼的表示範圍時,忽略了對移碼的總結,現在看移碼本身的表示範圍與ieee754使用的特殊階碼,有點迷惑,思考後才明白,這其中的關節。

首先我們明白移碼與補碼有相同的表達能力。也就是說,給定相同的機器字長,它們的表達範圍相同。

比如,8位機器字長,都用1位表達正負。

則補碼的表示範圍:[−

27,+

27−1

]=[−

128,

+127]

移碼的表示範圍:[−

27,+

27−1

]=[−

128,

+127]

二者相同。

如果換一種說法,n位階碼,等同於n位機器字長。也需要用一位表示正負。

移碼只用於表示整數。2n

,這個n是資料位,即機器字長去掉乙個符號位。

表達範圍[−

2n,+

2n−1

],機器

字長n+

1位

值得關注的特點是:

特別思考最後一條。對於正數,因為符號位都是0,現在2n

(第n+

1位是符

號位,恰

恰是2n

) 加過來,則最高位變1,於是移碼大,真值就大。

對於負數,我們以3位資料位1位符號位來看。

表達範圍是:[-8,7].

補碼–移碼: −8

=1,000補→

+23=

0,000移−7

=1,001補→

+23=

0,001移−6

=1,010補→

+23=

0,010移−5

=1,011補→

+23=

0,011移−4

=1,100補→

+23=

0,100移−3

=1,101補→

+23=

0,101移−2

=1,110補→

+23=

0,110移−1

=1,111補→

+23=

0,111移

可見通過移碼的表示法,能夠更清晰的去把握補碼的負數表示形式。

移碼是非常自然的,從全0開始到全1,主觀上與我們的直覺一致,但是表示範圍與補碼相同。

主要看ieee754編碼下,有8位移碼.

若是單純的用原本移碼的定義,表示範圍是[−

27,2

7−1]

=[−128

,127

] .

但是實際上是[−

126,

127]

。為了空兩個狀態表達非規格化數和無窮大,去掉了00000000(8個0),11111111(8個1).

注意,這裡的狀態是移碼狀態。所以移碼最大的狀態表示式是

11111110b=

254 ,最小是

00000001=1

.普通情況是真值加上偏置值求得移碼表示,現在是已知移碼表示求真值。偏置值取啥合適?若按正常取27

=128

,那麼最大真值就變成

254−

128=

126 ,最小真值變成1−

128=

−127

。也就是左右各收縮乙個真值。我們想想看,是為了多表達更多的大正數重要,還是表達乙個極小的小數重要?更大的正數對吧!所以,偏置值往左挪一位,不能挪2位更不能3位,只用挪乙個就可以表達移碼本身能表示的最大正數127了。

所以,偏置值取的是127.

所以ieee754單精度可以取得的階碼範圍是[−

126,

127]

,也即負數收縮了兩個,正數不變。

同理,對於雙精度的ieee754編碼,也是同樣的分析,階碼的真值範圍是[-1022,1023]。

再聯想到ieee754編碼的尾數隱藏了乙個資料位,所以尾數至少是1,且用原碼表示,所以就很容易知道所有ieee754相關的數值範圍問題了。

ieee754:

比如,最小正值分別是:

1.0×2−

126,

1.0×2−

1022

最大正值分別是:(2

−2−23

)×2127,(

2−2−

52)×2

1023

普通的移碼階碼就按照正常的分析即可,即偏置值取2n

,n是數

據位數目

中斷和異常的再總結

os 內部異常 內中斷 外中斷 來自cpu執行指令以外的事件。如 i o中斷,時鐘中斷等。在作業系統層次上,我們多聽到 異常 exception 而少見 中斷 interrupt 且往往籠統地稱其為異常,但處理器微體系結構規範通常會區分中斷和異常。一般而言,中斷是非同步的,異常是同步的,所謂同步和非...

中斷和異常的再總結

中斷和異常的再總結 os 內部異常 內中斷 故障 fault 自陷 trap 終止 abort 是源自cpu執行指令內部的事件。如 非法操作碼,位址越界,算術溢位,虛存系統的缺頁,陷入指令等引起的事件。內部異常不可被遮蔽,一旦出現立馬處理。外中斷 來自cpu執行指令以外的事件。如 i o中斷,時鐘中...

java再複習 異常總結

異常體系 throwable頂層介面 error 錯誤體系,發生這種錯誤,代表發生了不可挽回的錯誤,jvm會直接停止執行,並不提供任何可處理機制,只列印相關錯誤資訊。exception 異常體系,發生這種異常,相當於生病,有的可處理,有的不可處理,但是都是只是 病 沒有致命的問題,可以解決。runt...