進製 借位標誌CF和溢位標誌OF

2021-09-28 16:13:38 字數 926 閱讀 6686

溢位是指運算結果超過了數的表示範圍。通常,稱大於機器所能表示的最大正數為上溢,小於機器所能表示的最小負數為下溢。

計算機使用固定長度的機器數來表示數的,其所能表示的範圍是有限的。運算結果超過了這個範圍就溢位了。

兩正數相加(或正數減負數)可能產生上溢;兩負數相加(或負數減正數)可能產生下溢。

補碼減法也是用加法器實現的,因此,補碼加/減運算最後都可以轉化為a補+b補。

加法溢位的情況是:正數+正數可能。產生溢位(上溢),負數+負數可能產生溢位(溢位)

(1)採用一位符號位

a補,b補的符號相同,結果與它們不同,則結果溢位。

解釋:補碼加法時,符號位與數值位一起參加運算,如果結果超過正數範圍(如0111,超過這個最大正數,機器數就往1000、1001...這個方向)符號位會變成1,下溢也是同理(超過1111,機器數會往0000、0001...,符號位變為0)

(2)採用雙符號位

結果符號s1s2=   00結果為正,無溢位;

01表示結果正溢位;

10表示結果負溢位;

11結果為負數,無溢位

(3)採用一位符號位根據資料位的進製情況判斷溢位

符號位的進製與最高資料位的進製相同,則說明沒有溢位,否則發生溢位。

解釋:加法符號位有幾種種情況:

0+0=0(資料位和符號位均沒進製,沒溢位);0+0=1(符號位沒進製,資料位進1位,溢位,上溢);

0+1=1(符號位和資料位均沒進製,沒溢位);0+1=0(符號位和資料位均進製,沒溢位);

1+1=1(資料位和符號位均進1位,沒溢位);1+1=0(符號位進1位,資料位沒進製,溢位,下溢)

綜上,溢位的充要條件是符號位進製與資料位進製不同

of=1表示溢位,of=0表示沒溢位

cf=1表示最高位向前有進製或遊位,cf=0表示最高位沒有向前進製或遊位。

溢位OF和進 借位CF標誌位的判定

cf是無符號數溢位標誌,of是有符號數溢位標誌。通俗一點說就是,即使有符號數相加 相減導致了cf 1也沒什麼意義,不能說明結果的正確與否。此時,of 1,則說明結果溢位,出現錯誤 of 0,說明結果正確。這個過程根本和cf沒關係,cf 1 0,都不會影響。同理也 可以得出of對無符號數也無影響。方法...

CLR via C 列舉型別和位標誌

列舉型別 具有以下特性 1.c 中列舉型別繼承自基礎型別 byte,sbyte,short,ushort,int 預設 uint,long,ulong 但是il中列舉型別繼承自system.enum,並且內部定義了一組常量欄位和乙個例項字段。其中常量欄位的型別為列舉型別,常量欄位名稱為符號名稱,常量...

第15章 列舉型別和位標誌

enumeration提供了一些非常炫酷的功能,相信大多數開發人員都不熟悉。這些新功能極大的簡化了應用程式開發。列舉型別 enumerated types 定義了一組 符號名稱 值 配對。以下color型別定義了一組符號,每個符號都標識一種顏色 internal enum color white,賦...